我有一个数据框,其中(由于我控制之外的东西)变量的数量从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)
我可以用一个循环来做,但我希望有一个更简单的方法.
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)
| 归档时间: |
|
| 查看次数: |
3331 次 |
| 最近记录: |