我的資料框中有一列,其值為識別符號。反過來,我有一本字典,其中包含每個識別符號的含義。
我想用它的含義替換我的列的識別符號。
我認為它就像執行以下操作一樣簡單(帶有識別符號的列位于資料框的位置 3),
df.iloc[:,3] = my_dict[df.iloc[:,3]]]
但我收到以下錯誤,
TypeError:不可散列的型別:“系列”。
有問題的列包含整數,字典如下所示:
my_dict = {1: "One", 2: "Two", 3: "Three"}
如何對我的資料框進行此更改?
非常感謝。
uj5u.com熱心網友回復:
我建議使用應用于您的列的 lambda 函式
def explain_column(x,my_dict):
if x in my_dict.keys():
return my_dict[x]
else:
return x #Assuming that you won't change the value if not in the dict
df['my_column']=df['my_column'].apply(lambda x: explain_column(x,my_dict))
uj5u.com熱心網友回復:
你可以使用.map()
例子:
import pandas as pd
data = [[1,2,3],
[2,3,4]]
columns = ['a','b', 'c']
df = pd.DataFrame(data, columns=columns)
my_dict = {1: "One", 2: "Two", 3: "Three"}
df['a'] = df['a'].map(my_dict).fillna(df['a'])
輸出:
print(df)
a b c
0 1 2 3
1 2 3 4
現在是(注意我只應用于列'a'和'c',如果你不想要nan,那么需要使用.fillna():
print(df)
a b c
0 One 2 Three
1 Two 3 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/456069.html
上一篇:(Pandas)如何找到哪些bin事件落入其中,其中bin由單獨的資料框定義
下一篇:過濾記錄保留組中最近的記錄
