我有8年的日常数据.我想要绘制一周中每天的所有值,一年中每周和一年中每月的值.我怎么做?

我希望能够在一周中的每一天,每周和每月的几周内可视化我的数据点.我能够每年可视化我的数据.但是当我调整每月和每周的代码时,x轴仍然是每年.

我有8年的医院记录.我的数据分为两列.第1列是我的“日期”列,从2010-03-10开始,到2017-12-31结束.第2列是我的值列.本专栏列出了我是否有患者进行治疗.第2列中的值为0或x数字.例如0意味着我没有患者x意味着我有x个患者.当我尝试以图形方式表示此数据时,它只计算我每周最大的x数.

df=pd.read_csv('Data 3.csv', parse_dates=["Dates"], index_col="Dates")
# create the plot space upon which to plot the data
fig, ax = plt.subplots(figsize = (10,10))

# add the x-axis and the y-axis to the plot
ax.plot(df.resample('Y').sum()['Total # Events'],color = 'blue')

# rotate tick labels
plt.setp(ax.get_xticklabels(), rotation=45)

# set title and labels for axes
ax.set(xlabel="Years",
ylabel="Total # of Events",
title="Yearly Treatment Events from 2010-2017");

Graph result

所以我得到了正确的图形.但是当我每月从(‘Y’)将(df.resample(‘Y’).sum()更改为(‘M’)时,我得到一个显示年度X轴和值的图表.我该如何更改这是为了获得月度X轴和每周X轴?

最佳答案 因此,正如我所假设的那样,考虑到日期可用,这很容易.

因此,首先创建新列,表示日期所属的周,年和月.为此,您需要在读取csv时将Dates设置为index和parse_dates:

data=pd.read_csv('Data 3.csv',index_col='Dates',parse_dates=True)

现在您可以创建三列:

data['Week']=data.index.week
data['Month']=data.index.month
data['Year']=data.index.year

这将为您提供如下数据:

            Total # Events  Week  Year  Month
Dates                                        
2010-03-10               0    10  2010      3
2010-03-11               4    10  2010      3
2010-03-12               0    10  2010      3
2010-03-13               0    10  2010      3
2010-03-14               0    10  2010      3
2010-03-15               0    11  2010      3
2010-03-16               0    11  2010      3
2010-03-17               0    11  2010      3
2010-03-18               2    11  2010      3
2010-03-19               0    11  2010      3

而不是为你分享整个代码,我只是展示年份输出及其工作方式,休息我希望你可以自己做,或者你不会那样学习任何东西.

所以下一步是:

Yearwise=data.groupby(by=('Year')).sum()['Total # Events']

就是这样,绘制它:

plt.figure(figsize=(14,10))
Yearwise.plot()

您分享的图表是:
《我有8年的日常数据.我想要绘制一周中每天的所有值,一年中每周和一年中每月的值.我怎么做?》

请记住,对于月份而言,您需要将年份和月份一起用于分组,否则它将最终将所有相同编号的月份分组在一起.我的意思是这样的 –

by=('Year','Month'))

休息我相信你可以自己搞清楚.如果你收到错误,请告诉我.

点赞