Python 按天/月/年存储一系列日期字符串的最有效方法?

Python 按天/月/年存储一系列日期字符串的最有效方法?,python,python-2.7,pandas,Python,Python 2.7,Pandas,我发现自己经常做下面这样的事情,从一个数据框开始,它有一列字符串格式的日期,我想按日历单位(天、月、年等)存储。我求助于下面这样的事情,因为我知道,重采样只适用于DateTimeIndex系列 是否有一种更有效的按日期分类的方法,在代码方面更简洁和/或处理速度更快 build = pd.to_datetime(df.date_build,'%m/%d/%y') build = pd.DatetimeIndex(build) final = build.to_series(

我发现自己经常做下面这样的事情,从一个数据框开始,它有一列字符串格式的日期,我想按日历单位(天、月、年等)存储。我求助于下面这样的事情,因为我知道,
重采样
只适用于DateTimeIndex系列

是否有一种更有效的按日期分类的方法,在代码方面更简洁和/或处理速度更快

    build = pd.to_datetime(df.date_build,'%m/%d/%y')
    build = pd.DatetimeIndex(build)
    final = build.to_series()
    one = final.resample('M',how='count')

您可以直接按时间列分组:

df.groupby(pd.Grouper(key='date_build', freq='M')).size()
在运行时方面只快一点——所有这些转换操作都非常快

In [198]: df = pd.DataFrame({'date_build': pd.date_range('1900-1-1', periods=100000)})

In [199]: %timeit pd.DatetimeIndex(df.date_build).to_series().resample('M', how='count')
10 loops, best of 3: 149 ms per loop

In [200]: %timeit df.groupby(pd.Grouper(key='date_build', freq='M')).size()
10 loops, best of 3: 136 ms per loop
请在此处检查频率: