Python将值从字典映射到数据框

时间:2020-11-01 17:59:57

标签: python pandas

我有一个熊猫数据框,如下所示:

df = 
    key     value
1   Level       1
2   Age        35 
3   Height    180
4   Gender      0
...

和以下字典:

my_dict = {
           'Level':{0: 'Low', 1:'Medium', 2:'High'},
           'Gender': {0: 'Female', 1: 'Male'}
          }

我想从字典映射到数据框,并更改“值”列及其在字典中的对应值,例如输出变为:

    key        value
1   Level     Medium
2   Age           35 
3   Height       180
4   Gender    Female
...

该列中的其他值也可以成为字符串。我该如何实现?感谢您的帮助。

3 个答案:

答案 0 :(得分:6)

使用replace

进行检查
out = df.set_index('key').T.replace(my_dict).T.reset_index()
out
Out[27]: 
      key   value
0   Level  Medium
1     Age      35
2  Height     180
3  Gender  Female

答案 1 :(得分:0)

Series.mapdf.combine_first一起使用:

In [118]: df['v'] = df.value.map(my_dict['Level'])
In [123]: df['value'] = df.v.combine_first(df.value)
In [125]: df.pop('v')

In [126]: df
Out[126]: 
      key   value
1   Level  Medium
2     Age      35
3  Height     180
4  Gender     Low

答案 2 :(得分:0)

df.at[1, 'value'] = my_dict['Level'][df.at[1, 'value']]
df.at[4, 'value'] = my_dict['Gender'][df.at[4, 'value']]