我目前有一个名为df
的DataFrame,它包含以下内容:
date tag
2011-02-18 12:57:00-07:00 A
2011-02-19 12:57:00-07:00 A
2011-03-18 12:57:00-07:00 B
2011-04-01 12:57:00-07:00 C
2011-05-19 12:57:00-07:00 Z
2011-06-03 12:57:00-07:00 A
2011-06-05 12:57:00-07:00 A
...
我正在尝试按标签和日期(年/月)对数据进行分组,结果应如下:
date A B C Z
2011-02 2 0 0 0
2011-03 0 1 0 0
2011-04 0 0 1 0
2011-05 0 0 0 1
2011-06 2 0 0 0
...
我已经尝试了下面的方法,但它并没有完全给我想要的结果。
grouped_series = df.groupby([["%s-%s" % (d.year, d.month) for d in df.date], df.tag]).size()
我知道存在哪些标签等等。非常感谢您的帮助。
更新(供未来的人参考):
最终决定保留日期时间而不是字符串格式。相信我,在绘图时这将更好:
grouped_df = df.groupby([[ datetime.datetime(d.year, d.month, 1, 0, 0) for d in df.date], df.name]).size()
grouped_df = grouped_df.unstack().fillna(0)