我有一个简单的时间序列,可以观察2年以上的时间。我基本上想绘制该系列每个月的每日日期(查看每个月发生的每日季节性)。例如:
我希望每个月在图表上都有一个系列。有没有一种方法可以轻松拆分数据帧来做到这一点?
我试图避免每个月/每年都这样做...
df['JUN-2016'] = data[df['date'].month==12 & df['date'].year==2016]
数据框示例:
DATE
2015-01-05 2.7483
2015-01-06 2.7400
2015-01-07 2.7250
2015-01-08 2.7350
2015-01-09 2.7350
2015-01-12 2.7350
2015-01-13 2.7450
2015-01-14 2.7450
2015-01-15 2.7350
2015-01-16 2.7183
2015-01-19 2.7300
2015-01-20 2.7150
2015-01-21 2.7150
2015-01-22 2.6550
2015-01-23 2.6500
2015-01-27 2.6450
2015-01-28 2.6350
2015-01-29 2.6100
2015-01-30 2.5600
2015-02-02 2.4783
2015-02-03 2.4700
答案 0 :(得分:1)
首先,您需要将数据框中包含所有日期的列(假设它称为df["dates"]
)转换为datetimeformat:
df["date"]=pd.to_datetime(df["date"])
还需要导入日期时间库:
from datetime import datetime
然后您可以做:
startDateOfInterval = "2016-05-31"
endDateOfInterval = "2016-07-01"
dfOfDesiredMonth = df[df["date"].apply(lambda x: x > datetime.strptime(startDateOfInterval, "%Y-%m-%d") and x < datetime.strptime(endDateOfInterval, "%Y-%m-%d"))]
您将获得的df
仅包含在此间隔内具有日期的行。