【问题标题】:How to replace pandas dataframe column values based on dictionary key and values?如何根据字典键和值替换熊猫数据框列值?
【发布时间】:2021-12-12 18:10:55
【问题描述】:

我有一个数据框和一个基于 col1 中存在的字典值的字典需要替换。我试过了,但它没有改变。什么是有效的方法。谢谢。

df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}})
di = {1: "A", 2: "B"}

df
  col1 col2
0    w    a
1    A    2
2    B  NaN

预期输出:

df.replace({"col1": di})
  col1 col2
0    w    a
1    1    2
2    2  NaN

【问题讨论】:

    标签: python python-3.x pandas dataframe dictionary


    【解决方案1】:

    您可以创建dict 并将keyvalue 相互替换,然后使用.replace 作为您的尝试:

    >>> df = pd.DataFrame({'col1': {0: 'w', 1: 'A', 2: 'B'}, 'col2': {0: 'a', 1: 2, 2: np.nan}})
    >>> df
        col1    col2
    0      w    a
    1      A    2
    2      B    NaN
    
    >>> di = {1: "A", 2: "B"}
    >>> di2 = {v:k for k,v in di.items()}
    >>> df.replace({"col1": di2})
        col1    col2
    0      w    a
    1      1    2
    2      2    NaN
    

    【讨论】:

      【解决方案2】:

      我可能会像这样遍历字典对:

      for k, v in di.items()
           df['col1'].replace(k, v, inplace=True)
      

      【讨论】:

        猜你喜欢
        • 2018-01-10
        • 2021-12-25
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        • 2022-06-24
        相关资源
        最近更新 更多