如何在 Pandas 中,重命名 DataFrame 的列标题(列名)
在 Pandas 中,重命名 DataFrame 的列标题(列名)是一个常见的操作。你可以通过几种不同的方法来完成此任务,具体方法取决于你的需求和情况。以下是几种有效的重命名列标题的方法:
1. 使用 rename() 方法
rename() 方法可以通过传入一个字典来重命名单个或多个列。字典的键是旧列名,值是新列名。
示例:
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 使用 rename() 重命名列
df = df.rename(columns={'A': 'Column1', 'B': 'Column2'})
print(df)
输出:
Column1 Column2 C
0 1 4 7
1 2 5 8
2 3 6 9
注意: 使用 rename() 默认会返回一个新的 DataFrame。如果你希望修改原始 DataFrame,可以设置 inplace=True。
df.rename(columns={'A': 'Column1', 'B': 'Column2'}, inplace=True)
2. 直接赋值给 columns 属性
如果你想要重命名所有列,可以直接将一个新的列名列表赋值给 df.columns。
示例:
# 重命名所有列
df.columns = ['Column1', 'Column2', 'Column3']
print(df)
输出:
Column1 Column2 Column3
0 1 4 7
1 2 5 8
2 3 6 9
这种方法适用于重命名所有列时,且列数与原 DataFrame 的列数相匹配。
3. 使用 set_axis() 方法
set_axis() 方法可以重新设置 DataFrame 的轴(包括列名)。通过将列名列表传递给 set_axis(),可以重命名列。
示例:
# 使用 set_axis 重命名列
df = df.set_axis(['Column1', 'Column2', 'Column3'], axis=1, inplace=False)
print(df)
输出:
Column1 Column2 Column3
0 1 4 7
1 2 5 8
2 3 6 9
如果你希望就地修改 DataFrame,可以设置 inplace=True。
df.set_axis(['Column1', 'Column2', 'Column3'], axis=1, inplace=True)
4. 使用 add_prefix() 和 add_suffix()
如果你希望为所有列名添加一个前缀或后缀,可以使用 add_prefix() 或 add_suffix() 方法。这对于批量修改列名时非常方便。
示例:
# 给所有列名添加前缀
df = df.add_prefix('Prefix_')
print(df)
输出:
Prefix_Column1 Prefix_Column2 Prefix_Column3
0 1 4 7
1 2 5 8
2 3 6 9
同样,也可以使用 add_suffix() 来为列名添加后缀。
# 给所有列名添加后缀
df = df.add_suffix('_Suffix')
print(df)
输出:
Column1_Suffix Column2_Suffix Column3_Suffix
0 1 4 7
1 2 5 8
2 3 6 9
总结
rename():适用于部分列重命名,灵活且可用于单独或多个列。- 直接赋值给
columns:适用于重命名所有列时,简洁高效。 set_axis():可用于更改整个轴(列或行),适合批量更改列名。add_prefix()和add_suffix():用于为列名添加统一的前缀或后缀,批量处理时非常方便。
选择适当的重命名方法,可以让你的代码更清晰且易于维护。