You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas:如何在保留列标签顺序不变的情况下交换列内容?

最简单的两列内容交换方法

嘿,别纠结numpy那些复杂操作啦!针对你的需求,有个超直观又简单的办法,完全不用碰高级切片或者数组转换,直接用pandas的列赋值就能搞定。

你只需要一行代码,就能交换B和C列的内容,同时完全保留列标签的顺序:

df['B'], df['C'] = df['C'], df['B']

原理说明

这其实是利用了Python的元组解包特性——先把C列的值暂存,再把B列的值赋给C,最后把暂存的C值赋给B,一步完成交换,而且完全不会改变列的排列顺序,完美匹配你的要求。

如果不想修改原始DataFrame(避免影响后续操作),可以先复制一份再操作:

df_swapped = df.copy()
df_swapped['B'], df_swapped['C'] = df_swapped['C'], df_swapped['B']

验证结果

运行上面的代码后,你的DataFrame就会变成你想要的样子:

A B C
0 1 9 5
1 2 10 6
2 3 11 7
3 4 12 8

之前你尝试的pd.DataFrame.values和numpy切片其实是绕了弯路,这个方法对新手来说最容易理解和上手,完全适配你使用的pandas v0.25.3版本哦!

内容的提问来源于stack exchange,提问作者capnahab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 09:48:14