基于";“行”;在python中创建透视表后的数据
我有一组从SQL数据库获取的数据,并将其读入数据框。由此产生的df约为2.5亿行,每天都在增长。因此,我希望通过透视表来获得一个小得多的表(几千行) 这张桌子看起来像这样,但要大得多:基于";“行”;在python中创建透视表后的数据,python,indexing,pandas,dataframe,Python,Indexing,Pandas,Dataframe,我有一组从SQL数据库获取的数据,并将其读入数据框。由此产生的df约为2.5亿行,每天都在增长。因此,我希望通过透视表来获得一个小得多的表(几千行) 这张桌子看起来像这样,但要大得多: data report_date item_id views category 0 2013-06-01 2 3 a 1 2013-06-01 2
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
我想通过忽略“category”列,只获取按日期和项目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
现在想象一下,随着数据范围持续数月和数千个条目id,这会变得更大。我想选择“2013-06-01”和“2013-06-10”之间的项目(id=2)和报告(日期)的总视图,或者类似的内容
我已经连续搜索了几个小时,但我看不到如何选择和/或过滤我的“行”(即报告日期和项目id)部分中的值。我只能过滤/选择“值”部分(例如:视图)中的数据。这个问题是类似的,在最后提问者评论了我问的同一个问题,但从未得到回答。我只是想引起大家的注意
我感谢所有的帮助。这个网站和社区绝对是无价之宝 您应该能够像这样对其进行切片:
In [11]: pivot.ix[('2013-06-01', 3):('2013-06-01', 6)]
Out[11]:
views
report_date item_id
2013-06-01 5 16
请参阅。尽管如此,在这个特定的示例中,is fishy仍在继续。。。