利用函式或對映進行資料轉換 (map)

2021-09-07 09:41:09 字數 2033 閱讀 3445

先來看個資料

meat_to_animal =
series的map方法可以接受乙個函式或含有對映關係的字典型物件, 但是這裡有乙個小問題, 即有些肉類

的首字母大寫了, 而另一些則沒有。因此, 我們還需要將各個值轉換為小寫:

各種方法:

df = dataframe()

print

(df)

meat_to_animal =

#df['animal'] = df['food'].map(str.lower).map(meat_to_animal)

#print(df)

#df['animal'] = df['food'].map(meat_to_animal)

#print(df)

df1 = df['

food

'].map(str.lower).map(meat_to_animal)

print

(df1)

print("

-----------------------")

df3 = df["

food

"].map(lambda

x:meat_to_animal[x.lower()])

print

(df3)

print('

---------------------

') #此方法得到的是key, 不是value了, 特此表明

df2 = df["

food

"].map(lambda

x:x.lower(), meat_to_animal)

print(df2)

df = dataframe()

print

(df)

meat_to_animal =

df['

ounces

'] = df['

food

'].map(str.lower).map(meat_to_animal)

print(df)

view code

>>>x

one 1two 2three 3

>>>y

1foo

2bar

3baz

>>>x.map(y)

one foo

two bar

three baz

還有個na_nation引數, 如果需要看原始碼

>>> s = pd.series([1, 2, 3, np.nan])

>>> s2 = s.map(lambda x: '

this is a string {}

'.format(x),

na_action=none)

0 this

is a string 1.0

1 this is a string 2.0

2 this is a string 3.0

3 this is

a string nan

dtype: object

>>> s3 = s.map(lambda x: '

this is a string {}

'.format(x),

na_action='

ignore')

0 this

is a string 1.0

1 this is a string 2.0

2 this is a string 3.0

3nan

dtype: object

利用堆疊進行數制轉換

下面以無符號十進位制轉換為八進位制為例簡述數制轉換問題。將十進位制數num轉換為八進位制可以反覆執行以下步驟得到 1,將num除以8,取其餘數 2,判斷num除以8的商 若商為零,則轉換到此結束 若商不為零,則將商送num,轉到第1步。演算法描述如下 將無符號十進位制數轉換為八進位制數 堆疊採用順序...

LINQ 進行資料轉換

可以使用 linq 查詢建立包含元素的輸出序列,這些元素來自多個輸入序列。以下示例演示如何組合兩個記憶體中資料結構,但相同的原則可應用於組合來自 xml 或 sql 或資料集源的資料。假設以下兩種類型別 class student public string last public int id p...

利用oradata進行資料恢復

之前因為現場對方工程師的原因,把oracle其他資料夾都給格了,只剩下oradata資料夾拷貝出來了,基於oracle9i版本 第一步 搭建乙個和之前一模一樣的資料庫系統環境 第三步 將oradata資料夾覆蓋過去 第四步 啟動服務,登入之後應該會發現普通使用者無法登入,會報錯ora 01033 o...