首页 > 解决方案 > Pandas:生成时间序列日期时间特征

问题描述

我有一个date作为日期时间的 DF,范围从 2013 年 1 月到 2015 年 12 月。我想创建一个时间序列特征,表明每个月都有一个date_block_num,每个月增加一个。

例如,2013 年 1 月是0,2013 年 2 月是1,...,2013 年 12 月是11,2014 年 1 月是12,2014 年 2 月是13等等。

我可以使用简单iterrows()的方法来做到这一点,但我想知道是否有更好的方法?

标签: pythonpandas

解决方案


如果您的数据有所有月份,您可以使用factorize

DF['date'].dt.to_period('M').sort_values().factorize()

或者,您可以尝试一些数学运算:

years = DF['date'].dt.year
months = DF['date'].dt.month

DF['date_block'] = (years*12 + months) - 2013*12

推荐阅读