2017-04-17 46 views
4

考虑一个简单的DF:蟒蛇大熊猫命名多个列标题以同样的方式

HeaderA | HeaderB | HeaderC 
    476  4365  457 

有没有办法来重命名所有列,例如到底添加到所有列的“X”?

HeaderAX | HeaderBX | HeaderCX 
    476  4365  457 

我连接多个数据框,并希望根据它们来自哪个数据集来轻松区分列。

或者这是唯一的方法?

df.rename(columns={'HeaderA': 'HeaderAX'}, inplace=True) 

我有50多个列标题和10个文件;所以上述方法需要很长时间。

谢谢

回答

8

pd.DataFrame.add_suffix

df.add_suffix('X') 

    HeaderAX HeaderBX HeaderCX 
0  476  4365  457 

而妹妹方法
pd.DataFrame.add_prefix

df.add_prefix('X') 

    XHeaderA XHeaderB XHeaderC 
0  476  4365  457 

您也可以使用pd.DataFrame.rename方法并传递一个函数。要完成同样的事情:

df.rename(columns='{}X'.format) 

    HeaderAX HeaderBX HeaderCX 
0  476  4365  457 

在这个例子中,'{}X'.format是一个函数,它接受一个参数,并追加该方法的'X'

的好处是,你可以使用inplace=True如果您选择。

+2

谢谢,后缀一个很好 – jeangelj

+0

@jeangelj很高兴我可以帮忙:-) – piRSquared

1
df.columns = [column + 'X' for column in df.columns] 
1
df.columns = list(map(lambda s: s+'X', df.columns)) 
+0

这个很好用 – jeangelj

2

从这么post。让我们尝试在重命名使用lambda函数:

df.rename(列=拉姆达X:X + 'X',就地= TRUE)