【问题标题】:Getting a Different Sort Order Between "SPSS sort cases by" and Python "sort_values(by=[])在 \"SPSS sort cases by\" 和 Python \"sort_values(by=[]) 之间获取不同的排序顺序
【发布时间】:2023-01-31 00:44:59
【问题描述】:

我正在尝试将一些代码从 SPSS 转换为 Python。在代码中,SPSS“sort cases by”命令导致的排序顺序与 Pandas“df.sort_values(by=[])”命令不同。作为参考,以下是两个程序中的代码:

SPSS软件

GET FILE='C:\Data\sorttest.sav'.
sort cases by variable1.
dataset name sorttest.
execute.

Python

import pandas as pd
df_sorttest = pd.read_spss('C:\\Data\\sorttest.sav')
df_sorttest = df_sorttest.sort_values(by=['variable1'])

我假设这是因为他们使用不同的排序算法,但我不确定如何修复它以便在 Python 中获得相同的结果。

【问题讨论】:

  • 你可以在sort_values中指定你想要使用的排序算法
  • 你碰巧知道 SPSS 默认使用哪种算法来匹配它吗?编辑:我想我明白了,我使用了 kind='mergesort' 并得到了相同的顺序。谢谢!
  • 我不这样做,但我会首先检查您要排序的列的数据类型是否正确:例如,'123' 作为 str 与 123 作为 int 的排序方式不同。

标签: python pandas sorting spss


【解决方案1】:

感谢 It_is_Chris 推荐指定算法。我将它设置为 kind='mergesort' 并且它得到了正确的顺序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2022-01-03
    • 2015-10-07
    • 2018-05-02
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多