Dask数据帧上的groupby,然后按一列排序



想象一个简单的Dask数据集,它有两列:-交易日期-交易金额

我只想知道如何按交易日期分组并显示每天的交易计数。我希望结果数据帧按事务日期或计数排序。这是我的代码:

df = taxi_data.Date.value_counts().compute()

输出如下所示: 2019-01-25 291288 2019-01-11 290607 2019-01-31 283724 2019-01-17 283409 2019-01-24 280805 2019-01-10 280648 Name: Date, dtype: int64

问题是,我该如何按照第一列对其进行排序?

一种方法是在compute之后调用sort_index

taxi_data.Date.value_counts().compute().sort_index()

现在(在value_counts之后(结果相对较小,因此不需要以在dask级别对其进行排序。

另一个选项(无论如何都要在dask级别上执行(是:

  • 转换为DataFrame(具有单列(
  • 重置索引,使索引成为常规列(此新列列默认命名为索引(
  • 将索引设置回索引列,此时排序实际上
  • (可选(挤压以转换回系列
  • 计算结果

所以整个代码可以是:

taxi_data.Date.value_counts().to_frame()
.reset_index().set_index('index').squeeze().compute()

最新更新