【发布时间】:2013-12-20 22:18:44
【问题描述】:
我有一个包含订单的数据框,以及每个订单发生的日期,每天允许多个订单。我已经设法在数据框 df 中按天绘制订单数量:
df.groupby('order_date')['order_id'].count().plot()
这运行了好几年,我感兴趣的是将每年绘制在彼此之上,因此 x 轴仅包含一个月和一天。我目前的尝试是这样的:
grouped=df.groupby([df['order_date'].map(lambda x: x.year)])
groups=[]
for name,group in grouped:
groups.append(group)
for group in groups:
group.groupby([group['order_date'].map(lambda x: pd.to_datetime(str(x.month)+"-"+str(x.day), format="%m-%d"))])['order_id'].count().plot()
我按年份对我的所有数据进行分组,然后对于每一年,我按从 order_date 中的实际日期时间确定的月日日期时间对它进行分组。但是,这给了我以下错误:
ValueError: Out of bounds nanosecond timestamp: 1-09-01 00:00:00
我认为这是我的价值观之一,但我不确定这里到底出了什么问题。有没有更简单的方法来做我想做的事,还是我在代码中犯了错误?
【问题讨论】:
-
我们能否获取您的数据的最小和可复制/可粘贴部分来生成引发错误的数据框?
-
我希望我能,但我不能。
标签: python matplotlib pandas