gpt4 book ai didi

python - 如何按日期范围和类别对 Pandas 进行分类?

转载 作者:太空狗 更新时间:2023-10-30 02:29:54 25 4
gpt4 key购买 nike

我有一个包含日期、类别和值的数据框。我想绘制每个类别的总和聚合值。例如,我想对 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 值)。

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

最佳答案

我认为你应该按 catdate 分组:

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()

关于python - 如何按日期范围和类别对 Pandas 进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30185126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com