从多个字典填充熊猫数据框

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】:

对列表中的列使用zipSeries.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

【讨论】:

没错!非常感谢!

以上是关于从多个字典填充熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

将熊猫数据框转换为具有多个键的字典

如何按列绘制数据框的多个字典?蟒蛇熊猫

从嵌套字典构造熊猫多索引数据框

如果键是字符串/整数,则在字典中合并多个熊猫数据框

从字典创建熊猫数据框

从熊猫数据框创建嵌套字典