微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如何按照熊猫中的日期范围和类别进行分类?

我有一个数据框,其中包含日期,类别和值.我想绘制每个类别的总和汇总值.例如,我想对3天期间发生的值进行求和,但是对于每个类别单独计算.

似乎过于复杂的尝试是

import random
import datetime as dt
import pandas as pd
random.seed(0)

df=pd.DataFrame([[dt.datetime(2000,1,random.randint(1,31)), random.choice("abc"), random.randint(1,3)] for _ in range(100)], columns=["date", "cat", "value"])
df.set_index("date", inplace=True)

result=df.groupby("cat").resample("3d", how="sum").unstack("cat").value.fillna(0)
result.plot()

这基本上是正确的逻辑,但重新采样没有固定的开始,因此3天期间的日期范围在类别之间不对齐(我得到NaN / 0值).

有什么更好的方法来实现这个情节?

解决方法:

我想你应该按猫和日期分组:

df = pd.DataFrame([[dt.datetime(2000,1,random.randint(1,31)), random.choice("abc"), random.randint(1,3)] for _ in range(100)], columns=["date", "cat", "value"])
df.groupby(["cat", pd.Grouper(freq='3d',key='date')]).sum().unstack(0).fillna(0).plot()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐