繁体   English   中英

使用python pandas在数据框中使用多个字典重新映射多个列值

[英]remapping multiple column values with multiple dictionary in dataframe using python pandas

我有以下数据帧格式

 name,state,country a,1,67 b,2,52

我有以下州代码和国家代码映射字典

 state_map = { 1:'tn', 2:'kerala' } country_map = { 67: 'usa', 52: 'india'
我已经使用 data.replace({'state':state_map,'country':'country_map'}) 如果我们提供一列映射但不适用于多个映射字典,它的工作原理

如果给出一个 dict 来替换,则从文档中

  • 嵌套字典,例如 {'a': {'b': nan}},读作如下:在列 'a' 中查找值 'b' 并将其替换为 nan。 您也可以嵌套正则表达式。 请注意,列名(嵌套字典中的顶级字典键)不能是正则表达式。

因此,对于您的情况,您的 dict 看起来像:

r_map = {'state':{'1':'tn', '2':'kerala'},'country':{'67':'usa', '52':'india'}}

像这样使用它:

df.replace(r_map)

上面的解决方案需要很多时间,因此使用下面的代码来获得更好的性能(注意 fillna 用于在找不到匹配时填充默认值):-

df['state'].map(state_map).fillna(0)
df['country'].map(country_map).fillna(0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM