【发布时间】:2020-05-18 00:40:15
【问题描述】:
以下代码
testIDs.groupby(
['id', pd.TimeGrouper(key='date',freq='20s')]
)['quadrant'].value_counts()
给我:
Out[128]:
id date quadrant
2617 2019-10-08 18:47:40 4 1
2019-10-08 18:54:00 1 1
3 1
2019-10-08 18:54:40 0 1
3 1
2019-10-08 18:56:20 3 1
2019-10-08 18:59:20 2 1
2019-10-08 19:05:40 1 1
2019-10-08 19:06:20 1 2
4 1
2019-10-08 19:06:40 0 1
1 1
2019-10-08 19:07:00 2 2
0 1
3 1
2019-10-08 19:13:40 2 1
2019-10-08 19:14:20 0 1
2 1
2019-10-08 19:16:40 3 1
2019-10-08 19:18:40 1 3
0 2
3 2
2 1
2019-10-08 19:19:00 4 3
1 2
0 1
2 1
2019-10-08 19:19:20 4 6
2 1
2019-10-08 19:19:40 3 2
..
2855 2019-10-08 19:44:20 4 4
1 2
2 2
2019-10-08 19:44:40 4 8
2019-10-08 19:45:00 4 3
1 2
2 2
0 1
2019-10-08 19:45:20 4 7
2 1
2019-10-08 19:45:40 4 4
2 2
1 1
3 1
2019-10-08 19:46:00 1 3
4 2
0 1
2 1
3 1
2019-10-08 19:46:20 2 4
1 3
4 1
2019-10-08 19:46:40 1 3
2 3
3 1
4 1
2019-10-08 19:47:00 0 2
1 1
2 1
4 1
Name: quadrant, Length: 714, dtype: int64
最终输出应该是一个热图,其中日期为 X 轴,id 为 Y 轴,象限计数为值。我想根据象限和象限的计数及时比较id。
为此,我如何将此系列转换为数据框,并将多索引作为 df 列?
非常感谢您的帮助!!
【问题讨论】:
-
在您的
groupby代码后添加.reset_index()。 -
但这仅返回列,而不是索引中的 id、日期和象限。我怎样才能将它们放入 df 列?
-
重置索引需要一个聚合函数。我用整个代码添加了一个答案。如果您可以与您的数据共享一个示例、可重现的代码,那将是有益的。
标签: python pandas seaborn heatmap multi-index