【问题标题】:How to replace column values with dictionary keys如何用熊猫中的字典键替换列值
【发布时间】:2018-08-07 01:42:01
【问题描述】:

我有一个 df,

 A     B
 one   six
 two   seven
 three level
 five   one

还有一本词典

my_dict={1:"one,two",2:"three,four"}

我想用 my_dict keys() 替换 df.A

我想要的输出是,

 A     B
 1     six
 1     seven
 2     level
 five     one

我尝试了df.A.replace(my_dict,regex=True),但出错了

请帮忙,提前谢谢!

【问题讨论】:

    标签: python pandas dataframe data-analysis


    【解决方案1】:

    您需要先理解将每个值与键分开:

    my_dict={1:"one,two",2:"three,four"}
    d = {k: oldk for oldk, oldv in my_dict.items() for k in oldv.split(',')}
    print (d)
    {'one': 1, 'three': 2, 'four': 2, 'two': 1}
    
    df.A = df.A.replace(my_dict)
    

    【讨论】:

    • 在不修改字典的情况下还有其他方法吗?
    • @pyd - 不幸的是我没有其他想法,但我认为没有。
    • @pyd - 很高兴能帮上忙!
    【解决方案2】:

    这是通过map / fillna 提供的一种解决方案:

    d = {v_i: k for k, v in my_dict.items() for v_i in v.split(',')}
    df['A'] = df['A'].map(d).fillna(df['A'])
    
    #       A      B
    # 0     1    six
    # 1     1  seven
    # 2     2  level
    # 3  five    one
    

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 2020-11-30
      • 1970-01-01
      • 2018-01-10
      • 2021-12-12
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多