从多个字典填充熊猫数据框
Posted
技术标签:
【中文标题】从多个字典填充熊猫数据框【英文标题】:fill pandas dataframe from multiple dicts 【发布时间】:2022-01-24 05:59:16 【问题描述】:请告知如何优化解决以下任务:
我有熊猫数据框:
1st | 2nd | 3rd |
---|---|---|
1 | 8 | 10 |
2 | 1 | 0 |
5 | 1 | 0 |
1 | 3 | 0 |
df.shape 是 (100,3)。第 1 列值从 0 到 5,第 2 列:0-8,第 3 列:0-10
和 3 个具有不同键值的字典。
dict1 = 0: 'a',
1: 'b', ..., 5: 'xx'
dict2 = 0: 'aa',
1: 'bb', ..., 8: 'yy'
dict2 = 0: 'aaa',
1: 'bbb', ..., 10: 'zzz'
问题是如何用字典中的键替换数据框中的值?
类似的东西,但对于所有列:
df['1st'].map(v: k for v, k in enumerate(dict1)).to_frame()
【问题讨论】:
【参考方案1】:对列表中的列使用zip
和Series.map
:
dict1 = 0: 'a', 1: 'b', 3:'r',2:'y', 5: 'xx'
dict2 = 0: 'aa',6:'ww', 1: 'bb', 8: 'yy'
dict3 = 0: 'aaa', 3:'ree',5:'eey', 1: 'bbb', 10: 'zzz'
for c, d in zip(['1st', '2nd', '3rd'], [dict1, dict2, dict3]):
df[c] = df[c].map(d)
print (df)
1st 2nd 3rd
0 b bb zzz
1 b ww ree
2 r yy eey
3 xx bb eey
4 y bb zzz
5 xx bb bbb
【讨论】:
没错!非常感谢!以上是关于从多个字典填充熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章