我有一个熊猫数据框,如下所示:
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
...
该列中的其他值也可以成为字符串。我该如何实现?感谢您的帮助。
答案 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.map
与df.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']]