我在撰寫將 df 中的值替換為字典中的值的操作時遇到問題。這是我所擁有的:
import pandas as pd
d=[['English','Alabama','bob','smith']]
df=pd.DataFrame(d,columns=["lang",'state','first','last'])
filename='temp'
error_dict={}
error_dict[filename]={}
replace_dict={"state":{"Alabama": "AL", "Alaska": "AK"},"lang":{"English":"ENG", "French":"FR"}}
def replace(df, error_dict,colname):
#replace the values found the in df with the value that in the replace_dict
return df, error_dict
parsing_map={
"lang": [replace],
"state":[replace]
}
for i in parsing_map.keys():
for j in parsing_map[i]:
df, error_dict = j(df, error_dict, i)
我正在嘗試在“替換”函式中運行一些操作,它將用字典“replace_dict”中的縮寫值替換df列“lang”和“state”中的值。這使它更加混亂,因為您無需嘗試參考列名,而是使用colname.
我試圖做類似的事情:
def replace(df, error_dict,colname):
for colname, value in replace_dict.items():
df[colname] = df[colname].replace(value)
return df, error_dict
這只會替換 state 列的值,而不是 state 和 lang。我希望它在一個函式中,我知道它對于這個確切的應用程式不是必需的,但最終結果更好。
所需的輸出是:
d = [['ENG','AL','bob','smith']]
df = pd.DataFrame(d,columns=["lang",'state','first','last'])
如何使用替換函式和“colname”創建一個操作來將df中的值替換為字典中的值,以參考列名,即“lang”和“state”?
uj5u.com熱心網友回復:
回圈遍歷字典并一次替換每一列:
for colname, value in replace_dict.items():
df[colname] = df[colname].map(value)
編輯完整答案:
import pandas as pd
d=[['English','Alabama','bob','smith']]
df=pd.DataFrame(d,columns=["lang",'state','first','last'])
replace_dict={"state":{"Alabama": "AL", "Alaska": "AK"},"lang":{"English":"ENG", "French":"FR"}}
for colname, value in replace_dict.items():
df[colname] = df[colname].map(value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/527669.html
標籤:Python熊猫字典
下一篇:使用帶引數的函式提取值
