【问题标题】: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()

【问题讨论】:

    标签: python pandas dictionary


    【解决方案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
    

    【讨论】:

    • 没错!非常感谢!
    猜你喜欢
    • 2019-05-31
    • 2022-11-16
    • 2018-05-07
    • 2021-10-02
    • 1970-01-01
    • 2016-01-14
    • 2016-12-11
    • 2021-10-26
    相关资源
    最近更新 更多