如何独立对DataFrame的各列分别进行排序?
独立对DataFrame每列单独排序的方法
嘿,我懂你要的是让DataFrame里的每一列各自独立排序、互相不干扰的需求,这在Pandas里其实很容易实现,给你两种实用的方法:
方法一:使用apply()函数(最直观易懂)
首先先构造你给出的输入DataFrame:
import pandas as pd # 构造输入数据 df = pd.DataFrame({ 'Column1': [61, 14, 26], 'Column2': [5, 16, 27], 'Column3': [9, 8, 7] })
然后用apply()遍历每一列,对每列单独排序,同时重置索引避免原索引混乱:
# 对每列单独排序,互不影响 df_sorted = df.apply(lambda col: col.sort_values().reset_index(drop=True))
执行后得到的输出结果就是每列各自从小到大排序后的DataFrame:
Column1 Column2 Column3 0 14 5 7 1 26 16 8 2 61 27 9
方法二:使用numpy.sort()(大数据量更高效)
如果你的DataFrame数据量较大,用numpy的排序方法会更高效:
import numpy as np # 对每列排序后重新转为DataFrame df_sorted = pd.DataFrame(np.sort(df.values, axis=0), columns=df.columns)
这个方法直接对整个DataFrame的数值按列排序(axis=0表示按列操作),结果和方法一完全一致,速度上会更快一些。
简单说,两种方法都是让每一列的元素独立排序,不会因为某一列的排序改变其他列的元素顺序,完美匹配你的需求~
内容的提问来源于stack exchange,提问作者dbustosp
相关产品推荐
相关产品推荐

