我想将 Pandas DataFrame 的列标签从
['$a', '$b', '$c', '$d', '$e']
至
['a', 'b', 'c', 'd', 'e']
原文由 user1504276 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想将 Pandas DataFrame 的列标签从
['$a', '$b', '$c', '$d', '$e']
至
['a', 'b', 'c', 'd', 'e']
原文由 user1504276 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 df.rename()
函数并引用要重命名的列。并非所有列都必须重命名:
df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy)
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
最小代码示例
df = pd.DataFrame('x', index=range(3), columns=list('abcde'))
df
a b c d e
0 x x x x x
1 x x x x x
2 x x x x x
以下方法都有效并产生相同的输出:
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis=1) # new method
df2 = df.rename({'a': 'X', 'b': 'Y'}, axis='columns')
df2 = df.rename(columns={'a': 'X', 'b': 'Y'}) # old method
df2
X Y c d e
0 x x x x x
1 x x x x x
2 x x x x x
请记住将结果分配回去,因为修改不是就地的。或者,指定 inplace=True
:
df.rename({'a': 'X', 'b': 'Y'}, axis=1, inplace=True)
df
X Y c d e
0 x x x x x
1 x x x x x
2 x x x x x
从 v0.25 开始,您还可以指定 errors='raise'
以在指定了无效的要重命名列时引发错误。请参阅 v0.25 rename()
文档。
将 df.set_axis()
与 axis=1
和 inplace=False
一起使用(返回副本)。
df2 = df.set_axis(['V', 'W', 'X', 'Y', 'Z'], axis=1, inplace=False)
df2
V W X Y Z
0 x x x x x
1 x x x x x
2 x x x x x
这将返回一个副本,但您可以通过设置 inplace=True
就地修改 DataFrame(这是 <=0.24 版本的默认行为,但将来可能会更改)。
您还可以直接分配标头:
df.columns = ['V', 'W', 'X', 'Y', 'Z']
df
V W X Y Z
0 x x x x x
1 x x x x x
2 x x x x x
原文由 lexual 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
只需将其分配给
.columns
属性: