2014-06-13 37 views
0

我有一個數據幀,其中(由於我的控制之外的事情)變量的數量從1到20變化,並且所有變量被命名爲1,2,3,4,5 ....等。重命名熊貓數據框中的X列?在哪裏X變化

一天有四列:

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 

我可以用一個循環做到這一點,但我希望有一個簡單的方法。

回答

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