【问题标题】:Dataframe sorting does not apply when using .loc使用 .loc 时数据框排序不适用
【发布时间】:2019-12-12 10:02:20
【问题描述】:

我需要按日期时间列 my_date 对熊猫数据框 df 进行排序。 I每当我使用 .loc 排序时都不适用。

df = df.loc[(df.some_column == 'filter'),]
df.sort_values(by=['my_date'])
print(dfolc)
# ...
# Not sorted! 
# ...
df = df.loc[(df.some_column == 'filter'),].sort_values(by=['my_date'])
# ...
# sorting WORKS!

这两种用途有什么区别?我对数据框缺少什么?

【问题讨论】:

    标签: python pandas sorting dataframe


    【解决方案1】:

    在第一种情况下,您没有就地执行操作:您应该使用df = df.sort_values(by=['my_date'])df.sort_values(by=['my_date'], inplace=True)

    在第二种情况下,.sort_values() 的结果被保存到 df,因此打印 df 显示排序的数据帧。

    【讨论】:

    • 所以不同的是df.sort_values(by=['my_date'])返回了一个更新的df但是不保存,所以你必须指定操作应该就地执行
    【解决方案2】:

    在代码df = df.loc[(df.some_column == 'filter'),] df.sort_values(by=['my_date']) print(dfolc) 中,您使用的是df.loc() df.sort_values(),我不确定它是如何工作的。

    在 seconf 行中,您正确地调用它df.loc().sort_values(),这是正确的方法。您不必使用 df. 符号两次。

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 2016-04-02
      • 2020-09-19
      • 2020-07-06
      • 1970-01-01
      • 2019-05-27
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多