Python3中拼接DataFrame后列序混乱,如何重新排列列顺序?
解决Pandas DataFrame拼接后列顺序混乱的问题
你遇到的是列索引顺序错乱的问题,sort_values()是用来对行数据排序的,自然解决不了列顺序的问题。要调整列的显示顺序,直接通过指定列名列表重新选取DataFrame即可。
原混乱列顺序的DataFrame:
col2 col4 col3 col1 0 A 2 0 a 1 A 1 1 B 2 B 9 9 c 3 NaN 8 4 D 4 D 7 2 e 5 C 4 3 F
目标列顺序:
['col1', 'col2', 'col3', 'col4']
解决代码:
import pandas as pd # 模拟你的混乱DataFrame data = { 'col2': ['A', 'A', 'B', pd.NA, 'D', 'C'], 'col4': [2, 1, 9, 8, 7, 4], 'col3': [0, 1, 9, 4, 2, 3], 'col1': ['a', 'B', 'c', 'D', 'e', 'F'] } df = pd.DataFrame(data) # 指定目标列顺序并重新排列 target_cols = ['col1', 'col2', 'col3', 'col4'] df = df[target_cols] print(df)
运行结果:
col1 col2 col3 col4 0 a A 0 2 1 B A 1 1 2 c B 9 9 3 D NaN 4 8 4 e D 2 7 5 F C 3 4
补充说明:
如果你的列名是有规律的(比如col1、col2...colN),也可以用sorted()函数自动排序:
df = df[sorted(df.columns)]
但如果是自定义的非规律顺序,必须手动写出目标列名列表来指定顺序。
内容的提问来源于stack exchange,提问作者Renzo Neomar Machado
相关产品推荐
相关产品推荐

