gpt4 book ai didi

python - 如何使用 pandas 和每月 groupby 绘制时间序列?

转载 作者:行者123 更新时间:2023-12-01 00:37:56 25 4
gpt4 key购买 nike

我试图在按月分组后绘制时间序列,但我仍然在 x 轴标签上得到年份而不是月份。我们如何获得 x 轴标签上的月份和不同年份的不同曲线?

这是我的尝试:

import numpy as np
import pandas as pd
import statsmodels.api as sm

df = pd.DataFrame.from_records(sm.datasets.co2.load().data)
df['index'] = pd.to_datetime(df['index'])
df = df.set_index('index')

ts = df['co2']['1960':]
ts = ts.bfill()
ts = ts.resample('MS').sum()

ts.groupby(ts.index.month).plot()

通缉:

图的 x 轴上的月份名称以及不同年份的不同曲线。

该图应类似于以下内容:

最佳答案

我认为您正在寻找 pandas.to_datetime(),然后使用 dattime 索引的 .month 或 .year 属性。

此外,通过使用 statsmodel 的“as_pandas=True”,您的代码会变得更短

无论如何,如果你想将月份绘制为色调,我建议使用seaborn而不是matplotlib

import pandas as pd
import statsmodels.api as sm
import seaborn as sns

df = sm.datasets.co2.load(as_pandas=True).data
df['month'] = pd.to_datetime(df.index).month
df['year'] = pd.to_datetime(df.index).year
sns.lineplot(x='month',y='co2',hue='year',data=df.query('year>1995')) # filtered over 1995 to make the plot less cluttered

这给出

enter image description here

关于python - 如何使用 pandas 和每月 groupby 绘制时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57601552/

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