Python:如何使用字符串和数字重命名列

时间:2018-12-15 14:32:07

标签: python pandas dataframe indexing

我有一个这样的数据框

df:
   X  Y  Z
0  1  0  0
1  0  1  0
2  0  0  1

如果我想用这样的字符串和数字重命名列(0、3),

df:
  new_0  new_1  new_2
0     1      0      0
1     0      1      0
2     0      0      1

我该怎么办?

实际上,就我而言,我大约有73列应该重命名,所以我认为我不能只将每一列都重命名。

谢谢〜

2 个答案:

答案 0 :(得分:1)

假设您有一个函数rename()将旧列映射到新列,那么就很容易了:

df.columns = [rename(c) for c in df.columns]

我不知道您的意思是什么,但是如果您只是想对列进行重新编号,则可以这样做:

df.columns = ["new_%d" % i for i,_ in enumerate(df.columns)]

答案 1 :(得分:0)

您可以使用Pandas / NumPy功能:

df.columns = np.arange(df.shape[1])
df = df.add_prefix('new_')

或者您可以将列表理解与f字符串一起使用(Python 3.6; PEP498):

df.columns = [f'new_{i}' for i in range(df.shape[1])]
相关问题