我有這個 python 字典:
dictionary = {
'1':'A',
'2':'B',
'3':'C',
'4':'D',
'5':'E',
'6':'F',
'7':'G',
'8':'H',
'8':'I',
'9':'J',
'0':'L'
}
我創建了這個簡單的熊貓資料框:
import pandas as pd
ds = {'col1' : [12345,67890], 'col2' : [12364,78910]}
df = pd.DataFrame(data=ds)
print(df)
看起來像這樣:
col1 col2
0 12345 12364
1 67890 78910
我想按照上面指出的字典將col1(這是一個int欄位)中的每個數字轉換為對應的字母。所以,基本上我希望得到的資料框看起來像這樣:
col1 col2 col1_transformed
0 12345 12364 ABCDE
1 67890 78910 FGHIJ
有沒有一種快速的pythonic方法可以做到這一點?
uj5u.com熱心網友回復:
一個可能的解決方案(注意8在您的字典中重復 - 一個錯字? - 因此,我的結果與您的不匹配):
def f(x):
return ''.join([dictionary[y] for y in str(x)])
df['col3'] = df['col1'].map(f)
輸出:
col1 col2 col3
0 12345 12364 ABCDE
1 67890 78910 FGIJL
uj5u.com熱心網友回復:
嘗試:
df[df.columns "_transformed"] = df.apply(
lambda x: [
"".join(dictionary.get(ch, "") for ch in s) for s in map(str, x)
],
axis=1,
result_type="expand",
)
print(df)
印刷:
col1 col2 col1_transformed col2_transformed
0 12345 12364 ABCDE ABCFD
1 67890 78910 FGIJL GIJAL
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520243.html
標籤:熊猫细绳字典整数转型
上一篇:從串列中的日期字串中提取日期
