我有一组数据,这些数据是从 SQL 数据库中获取并读入 pandas 数据框的。生成的 df 大约有 2.5 亿行,并且每天都在增长。因此,我想旋转表格以给我一个小得多的表格来处理(几千行)。
表格看起来像这样,但要大得多:
data
report_date item_id views category
0 2013-06-01 2 3 a
1 2013-06-01 2 2 b
2 2013-06-01 5 16 a
3 2013-06-01 2 4 c
4 2013-06-01 2 5 d
我想通过忽略“类别”列并只按日期和 item_id 获取总的查看次数来使它更小。
我这样做:
pivot = data.pivot_table(values=['views'], rows=['report_date','item_id'], aggfunc='sum')
views
report_date item_id
2013-06-01 2 14
2013-06-01 5 16
现在想象一下,如果数据范围持续数月和数千个 item_id,这会更大。我想选择“2013-06-01”和“2013-06-10”之间的 item_id = 2 和 report_date 的总 View 或类似的东西。
我已经连续搜索了几个小时,但看不到如何在我的“行”(即 report_date 和 item_id)部分中选择和/或过滤掉值。我只能过滤/选择“值”部分中的数据(例如: View )。这个问题很相似,最后提问者评论了我正在问的同一个问题,但从未得到回答。我只是想尝试引起人们的注意。
Filtering and selecting from pivot tables made with python pandas
我感谢所有的帮助。这个网站和社区绝对是无价的。
最佳答案
你应该能够像这样切片:
In [11]: pivot.ix[('2013-06-01', 3):('2013-06-01', 6)]
Out[11]:
views
report_date item_id
2013-06-01 5 16
关于python - 在 python pandas 中创建数据透视表后基于 "rows"数据进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035108/