我有两列带有日期,我想知道是否有一种简洁的方法来获取之间的“句号”(即“ 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
答案 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)