重命名pandas数据框中的X列?X变化的地方

Ant*_*ton 0 python pandas

我有一个数据框,其中(由于我控制之外的东西)变量的数量从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
Run Code Online (Sandbox Code Playgroud)

另一天有2列:

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

我想要的是:

使用"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
Run Code Online (Sandbox Code Playgroud)

我可以用一个循环来做,但我希望有一个更简单的方法.

chr*_*isb 9

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
Run Code Online (Sandbox Code Playgroud)