【问题标题】:Rename X columns in a pandas dataframe? Where X varies [duplicate]重命名熊猫数据框中的 X 列? X变化的地方[重复]
【发布时间】:2014-08-03 10:57:47
【问题描述】:

我有一个数据框,其中(由于我无法控制)变量的数量从 1 到 20 不等,所有变量都命名为 1、2、3、4、5.... 等

一天有四列:

data = {'1': ['A', 'B', 'C', 'D', 'E'], 
        '2': [1, 0, 1, 0, 1], 
        '3': [1, 1, 0, 0, 3],
        '4': [0, 0, 1, 1, 1]}
df = pd.DataFrame(data)
df

又一天有 2 列:

data = {'1': ['A', 'B', 'C', 'D', 'E'], 
        '2': [1, 0, 1, 0, 1]}
df = pd.DataFrame(data)
df

我想要什么:

在每个列名前加上“variable_”(无论列数如何)。所以它看起来像这样:

data = {'variable_1': ['A', 'B', 'C', 'D', 'E'], 
        'variable_2': [1, 0, 1, 0, 1], 
        'variable_3': [1, 1, 0, 0, 3],
        'variable_4': [0, 0, 1, 1, 1]}
df = pd.DataFrame(data)
df

我可以用循环来做到这一点,但我希望有更简单的方法。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    df.rename 可以带一个修改列名的函数,所以你可以这样做。

    In [171]: data = {'1': ['A', 'B', 'C', 'D', 'E'], 
         ...:         '2': [1, 0, 1, 0, 1], 
         ...:         '3': [1, 1, 0, 0, 3],
         ...:         '4': [0, 0, 1, 1, 1]}
         ...: df = pd.DataFrame(data)
         ...: 
    
    In [172]: df.rename(columns = lambda x : 'variable_' + x)
    Out[172]: 
      variable_1  variable_2  variable_3  variable_4
    0          A           1           1           0
    1          B           0           1           0
    2          C           1           0           1
    3          D           0           0           1
    4          E           1           3           1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-25
      • 2017-12-19
      • 2014-11-23
      • 2017-10-14
      • 2019-05-25
      • 2017-01-26
      • 2020-03-24
      • 2021-02-03
      相关资源
      最近更新 更多