2015-10-19 26 views
2

我有一个python系列,其中包含datetime.date对象,范围从1/2013到12/2015,这是产品销售的月份。我想要做的是按月销售产品数量。如何根据Python中的日期进行Bin/Count

有没有一种有效的方法来做到这一点与熊猫?

回答

1

我建议使用datetime64,即首先在索引上应用pd.to_datetime。如果你设置这个索引,那么你可以使用resample:

In [11]: s = pd.date_range('2015-01', '2015-03', freq='5D') # DatetimeIndex 

In [12]: pd.Series(1, index=s).resample('M', how='count') 
Out[12]: 
2015-01-31 7 
2015-02-28 5 
2015-03-31 1 
Freq: M, dtype: int64 
+0

这对我的应用程序完美的作品,是更简洁,那么我目前的做法。我转换为datetimeindex,然后在DF中创建三个额外的列几天,几个月和几年,并利用groupby。 – JL1515

+0

pandas datetimeindex对象和python的本地日期时间对象之间有什么区别? – JL1515

+1

@ user5374436 pandas Timestamp/DatetimeIndex在底层使用了numpy的datetime64,基本上justs int64带有时区信息(附加到整个数组而不是特定对象 - 就像datetime.datetime一样)。 datetime.datetime效率低很多,因为它们是python对象。 –