将数据帧的列从 0 重命名为字符串(重命名不起作用)

问题描述 投票:0回答:3

我有一个如下所示的数据框

索引 0 功能2 功能3
0 邮政编码 0.10 y z
1 纬度 0.56 y z
2 经度 0.39 y z

我使用以下代码将第三列名称 0 更改为其他名称,但是当我再次输出数据帧时,没有任何变化,该列仍然是 0。

df.rename(index={0: 'feature_rank'})
# Or alternatively
df.rename(column={0: 'feature_rank'})

我还想知道是否可以将第二列的名称更改为其他名称。再次重命名不适用于“索引”列

python pandas dataframe
3个回答
4
投票

DataFrame.rename()
返回一个新的数据框,其中的列已重命名(这在进行方法链接时很有用)。

您想通过执行以下操作来保留结果:

df = df.rename(column={0: 'feature_rank'})

或者,它有一个参数(称为

inplace
),允许您就地执行操作(因此您不需要重新分配):

df.rename(column={0: 'feature_rank'}, inplace=True)

如果您想重命名多个列,您可以将它们添加到字典中,例如:

df = df.rename(column={0: 'feature_rank', 'feature2': 'my_new_name_for_feature2'})

注意

关于使用

df.rename(index=...)
df.rename(columns=...)
会产生不同的结果。设置
index
参数将重命名行,设置
columns
参数将重命名列。

例如:

df = df.rename(column={0: 'feature_rank'})
索引 特征_排名 功能2 功能3
0 邮政编码 0.10 y z
1 纬度 0.56 y z
2 经度 0.39 y z

相反:

df = df.rename(index={0: 'feature_rank'})
索引 0 功能2 功能3
特征_排名 邮政编码 0.10 y z
1 纬度 0.56 y z
2 经度 0.39 y z

2
投票

希望这会起作用。

df.rename(columns={'0': 'feature_rank'}, inplace=True)

1
投票

你应该尝试这个:

df.rename(column={'0':'feature_rank', 'feature2': 'my_new_name_for_feature2'}, inplace=True)
© www.soinside.com 2019 - 2024. All rights reserved.