球门
  
  
   我有代表开支的数据,包括日期和类别,我想绘制
   
    一段时间内每个类别的滚动平均值
   
  
  
  
   来源
  
  
   我尝试过使用和组合以下内容,但没有成功
  
  
  
  
   尝试和MCVE
  
  
   使用第二个链接,我得到的最好的结果是
  
  import pandas as pd
from matplotlib import pyplot as plt
from random import randrange, seed
from datetime import datetime
seed(321)
nb = 24
df = pd.DataFrame({
    "date": [datetime(2023, 1 + i // 2, 5) for i in range(nb)],
    "category": [item for _ in range(nb // 2) for item in ["food", "wear"]],
    "value": [randrange(10, 120) for _ in range(nb)],
})
df.set_index("date", inplace=True)
all_s = []
for x in set(df["category"]):
    s = df.loc[df['category'] == x, "value"]
    s = s.groupby(pd.Grouper(freq="ME")).sum()
    all_s.append(s.rename(x))
df = pd.concat(all_s, axis=1).fillna(0).asfreq("ME", fill_value=0)
df.plot(style='.-', figsize=(15, 20), ylim=(0, 130))
plt.show()
  
   在中渲染
  
  
   
     
   
  
  
  
  
  
   预料
  
  
   我希望添加类似的内容
   
    .rolling(window=3, min_periods=1)
   
   在某个地方,在图上画一条平坦的线,避免峰值,只得到给定时间段的平均值