我想用字典中的值替换df中的值。我的问题是,只有一个价值正在被取代,我希望两者都会被取代。
import pandas as pd
d=[['Alabama','English','test@gmail.com']]
df=pd.DataFrame(d,columns=['state','lang','Email'])
replace_dict={
"state":
{"Alabama": "AL", "Alaska": "AK"},
"lang":
{"English":"ENG", "French":"FR"}}
def replace(df,colname):
for colname, value in replace_dict.items():
df[colname] = df[colname].replace(value)
return df
parsing_map={
"state":[replace],
"lang": [replace]
}
for i in parsing_map.keys():
for j in parsing_map[i]:
df = j(df,i)当前的df从这里返回阿拉巴马作为AL,但它不会返回英语作为ENG。
我的愿望是:
state lang Email
0 AL ENG test@gmail.com为什么这只替换解析映射将列名命名为replace函数的两个值之一,而不替换两个值?如何使函数通过使用replace_dict将两个值返回到所需的输出?
发布于 2022-11-08 01:46:07
这里有一种方法
# filter replace_dict by state and lang respectively to map the DF
df['state']=df['state'].map(replace_dict['state'])
df['lang']=df['lang'].map(replace_dict['lang'])
df state lang Email
0 AL ENG test@gmail.comhttps://stackoverflow.com/questions/74354813
复制相似问题