使用重复的列名重命名 Pandas 数据框中的列?

新手上路,请多包涵

我有一个 df X,其中的列名称重复:

 In [77]: X_R
Out[77]:
      dollars  dollars
   0   0.7085   0.5000

我想重命名它,以便我拥有:

 In [77]: X_R
Out[77]:
       Retail   Cost
   0   0.7085   0.5000

使用 Pandas 重命名功能确实有效:

 X_R.rename(index=str, columns={"dollars": "Retail", "dollars": "Cost"})

只给我两个名为 Cost 的列。

在这种情况下如何重命名列?

原文由 Alex Kinman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 721
2 个回答
X_R.columns = ['Retail','Cost']

原文由 Mihkorz 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是一个动态解决方案:

 In [59]: df
Out[59]:
   a  x  x  x  z
0  6  2  7  7  8
1  6  6  3  1  1
2  6  6  7  5  6
3  8  3  6  1  8
4  5  7  5  3  0

In [60]: d
Out[60]: {'x': ['x1', 'x2', 'x3']}

In [61]: df.rename(columns=lambda c: d[c].pop(0) if c in d.keys() else c)
Out[61]:
   a  x1  x2  x3  z
0  6   2   7   7  8
1  6   6   3   1  1
2  6   6   7   5  6
3  8   3   6   1  8
4  5   7   5   3  0

原文由 MaxU - stop russian terror 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题