首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用函数映射从字典中替换数据帧中的值

问使用函数映射从字典中替换数据帧中的值
EN

Stack Overflow用户
提问于 2022-11-08 01:39:48
回答 1查看 29关注 0票数 0

我想用字典中的值替换df中的值。我的问题是,只有一个价值正在被取代,我希望两者都会被取代。

代码语言:javascript
复制
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。

我的愿望是:

代码语言:javascript
复制
 state     lang           Email
0    AL     ENG      test@gmail.com

为什么这只替换解析映射将列名命名为replace函数的两个值之一,而不替换两个值?如何使函数通过使用replace_dict将两个值返回到所需的输出?

EN

回答 1

Stack Overflow用户

发布于 2022-11-08 01:46:07

这里有一种方法

代码语言:javascript
复制
# 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
代码语言:javascript
复制
    state   lang    Email
0   AL  ENG     test@gmail.com
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74354813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档