pandas-groupby - 在 Dask 数据帧上分组,然后按一列排序
问题描述
想象一个包含两列的简单 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(单列),
- 重置索引,使索引成为常规列(这个新列默认命名为index),
- 将索引设置回索引列,这是实际发生排序的时刻,
- (可选)挤压它以转换回Series,
- 计算结果。
所以整个代码可以是:
taxi_data.Date.value_counts().to_frame()\
.reset_index().set_index('index').squeeze().compute()
推荐阅读
- c++ - OpenCV C++ 中的范围错误
- ios - Firestore - 在 Tableview 中显示数据
- java - Spring 缓存是如何工作的?
- python - python sklearn pipiline fit:“AttributeError:未找到下限”
- java - 线程完成时如何测试结果 - java
- javascript - 在多个元素上使用 addEventListener,避免在未找到特定元素时出现 TypeError
- sql - 使用 sqlite3 如何在 SQL-db(或其 CSV)中设置一列的宽度
- android - 音轨 setVolume - 最小值
- automapper - 与实体框架一起使用时如何调试自动映射器映射是否正确
- c++ - FILE *在不同的函数c ++中初始化