熊猫会根据两个日期时间/日期之间的频率获取日期数-期间

时间:2019-10-29 14:58:15

标签: python pandas datetime frequency

我有两列带有日期,我想知道是否有一种简洁的方法来获取之间的“句号”(即“ D”,“ W”,“ M”,“ Q”,“ Y”)的数量他们两个都没有建立大量的自定义映射。

    first_transaction   order_date
0   2014-06-26  2014-06-29
1   2014-02-23  2015-01-09
2   2014-02-23  2014-02-23
3   2016-03-22  2016-03-22
4   2016-03-22  2017-10-20

即想要获得频率“ Q”的ID

    first_transaction   order_date  res
0   2014-06-26  2014-06-29  0
1   2014-02-23  2015-01-09  4
2   2014-02-23  2014-04-23  1
3   2016-03-22  2016-08-22  2
4   2016-03-22  2017-10-20  7

1 个答案:

答案 0 :(得分:0)

您可以计算两个日期之间的差(一旦转换为日期),然后算术计算出相关单位。

from math import ceil
import datetime
df = df.applymap(lambda x: datetime.datetime.strptime(x, '%m/%d/%y'))
df.apply(lambda y: ceil(((y['order_date'].year - y['first_transaction'].year)*12 + (y['order_date'].month - y['first_transaction'].month))/3), axis = 1)