python - Pandas 独立对多列进行排序

标签 python pandas sorting dataframe

我一直在努力对 df 的整个列进行排序,但是,我的代码似乎仅适用于第一列(“名称”),并根据第一列对其余列进行排序,如下所示:

Index Name Age Education Country 
0    W    2    BS         C
1    V    1    PhD        F 
2    R    9    MA         A
3    A    8    MA         A
4    D    7    PhD        B
5    C    4    BS         C

df.sort_values(by=['姓名', '年龄', '教育', '国家'],ascending=[True,True, True, True])

这是我希望得到的:

Index Name Age Education Country 
0     A    1    BS         A
1     C    2    BS         A 
2     D    4    MA         B
3     R    7    MA         C
4     V    8    PhD        C
5     W    9    PhD        F

相反,我得到以下信息:

Index Name Age Education Country 
3     A    8    MA         A
5     C    4    BS         C
4     D    7    PhD        B
2     R    9    MA         A
1     V    1    PhD        F 
0     W    2    BS         C

您能解释一下这个问题吗?提前谢谢了。 干杯, R。

最佳答案

您的代码按姓名排序,然后是年龄,然后是国家/地区等。

要获得所需的内容,您可以对每列进行排序以按列排序。例如,

for col in df.columns:
    df[col]=sorted(df[col])

但是你确定这就是你想要做的吗? DataFrame 的设计使每一行对应一个条目,例如一个人,这些列对应于“姓名”和“年龄”等属性。因此,您不希望将姓名和年龄分开排序,以免人们的姓名和年龄不匹配。

关于python - Pandas 独立对多列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54739798/

相关文章:

python - Mamba 安装 FASTBOOK 导致提供程序安装问题

python - python 中的函数什么都不返回

python - pandas 从单列中删除重复项,同时保持剩余行完整

javascript - 如何根据日期属性之间的范围是否包含给定日期来过滤对象数组?

javascript - 如何随机排序列表项?

python - 将参数传递给 subprocess.Popen() 调用的 "executable"参数

python - 有效计算分组在一组其他分组变量中的多个独立列的 value_counts

python - 通过对列进行分组来合并 pandas 数据框的行

python - 使用 Python 将 DateTime 时间戳转换为 unix

algorithm - 昂贵比较的排序算法