在pandas数据框中重命名X列?X可变
我有一个数据表,这个数据表里的变量数量会变化,从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
而另一天,可能只有两列:
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
我可以用一个循环来实现这个,但我希望能有更简单的方法。
1 个回答
11
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