【发布时间】:2017-05-06 15:04:49
【问题描述】:
我一直在分析运行了几个月的数据,然后每月生成并保存一个数字。到目前为止,当这些都在同一日历年内时,这非常有效,但我不知道当数据跨越到下一年时如何指示循环工作。
示例代码:
import pandas as pd
import datetime as datetime
import matplotlib as plt
df = pd.read_csv("file.csv")
df.index = df.Datetime
for month in range(4,12): #Data starts in April in this example
fig, axes = plt.subplots(nrows=2,ncols=1, sharex=True, figsize =(18,10))
startDate = datetime.date(2016,month,1)
stopDate = datetime.date(2016,month+1,1)
date_val = startDate.strftime("%B %Y")
k=0
df.PRe[startDate:stopDate].plot(ax=axes[k])
#ylim, xlim, title etc
k=1
df.PRp[startDate:stopDate].plot(ax=axes[k])
plt.savefig("PRe and PRp in %s.png"%date_val,bbox_inches="tight")
This SO question 接近了,尽管他们使用 pandas datetime 对象而不是我使用的 datetime.date 对象。我是否应该修改我的代码以适应解决方案,如果是,如何? 否则,一旦我们超过 2016 年,是否有一种 pandas/pythonic 的方法可以让它工作 - 无论是对于已知的开始和结束日期,还是更好,对于任何开始和结束日期?
【问题讨论】:
标签: python datetime pandas matplotlib