我有一个这样的数据框
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列应该重命名,所以我认为我不能只将每一列都重命名。
谢谢〜
答案 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])]