我有一个如下所示的数据框
索引 | 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'})
我还想知道是否可以将第二列的名称更改为其他名称。再次重命名不适用于“索引”列
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 |
希望这会起作用。
df.rename(columns={'0': 'feature_rank'}, inplace=True)
你应该尝试这个:
df.rename(column={'0':'feature_rank', 'feature2': 'my_new_name_for_feature2'}, inplace=True)