【问题标题】:How do you pass a dictionary through the pandas replace function? [duplicate]如何通过 pandas 替换功能传递字典? [复制]
【发布时间】:2019-02-03 09:03:58
【问题描述】:

您将如何使用字典来替换数据框中所有列的值?

下面是一个示例,我尝试通过替换函数传递字典。我有一个脚本,可以根据公司的经理/员工结构生成各种大小的数据框 - 因此每个数据框的列数会有所不同。

import pandas as pd
import numpy as np

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

df = df.replace({di})
print(df)

下面链接了一个类似的问题,其中解决方案指定了列名,但鉴于我正在查看列名/大小会有所不同的整个数据框,我想将替换功能应用于整个数据框。

Remap values in pandas column with a dict

谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    不要把{} 放在你的字典周围——它试图把它变成一个集合,这会引发错误,因为字典不能是集合中的一个元素。而是直接传入字典:

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}, 'col3': {0: 'w', 1: 1, 2: 2}, 'col4': {0: 'w', 1: 1, 2: 2}})
    di = {1: "A", 2: "B"}
    print(df)
    
    df = df.replace(di)
    print(df)
    

    输出:

      col1 col2 col3 col4
    0    w    a    w    w
    1    1    2    1    1
    2    2  NaN    2    2
      col1 col2 col3 col4
    0    w    a    w    w
    1    A    B    A    A
    2    B  NaN    B    B
    

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 2013-03-26
      • 1970-01-01
      • 2011-09-18
      • 2015-03-12
      • 2019-12-07
      • 2019-05-20
      • 2016-12-30
      • 2014-01-21
      相关资源
      最近更新 更多