首页 > 解决方案 > 在python3中查找忽略年份的两个日期之间的差异

问题描述

我试图找出忽略年份的两个日期之间的差异。因此,假设我想找出 2014-01-02 和 2019-01-01 之间的区别,答案应该是 1,但这样做有困难。 它应该是一年中的第几天,减去月份中的一天是行不通的

下面是我使用的代码,但它并没有给我想要的结果,因为它也考虑到了年份。

data12['Dist_from_NewYear'] = data12['only_date'].map(lambda x: x.date() - public_holidays['Date'][0].date())

data12['Dist_from_NewYear']

0      -1456 days
1      -1455 days
2      -1454 days
3      -1453 days
4      -1452 days
5      -1451 days
6      -1450 days
7      -1449 days
8      -1448 days
9      -1448 days
10     -1448 days
11     -1446 days
12     -1445 days

标签: pandasdatetimepython-3.6

解决方案


用于dt.dayofyear获取一年中的第几天进行计算:

In[131]:
df = pd.DataFrame({'a':[pd.to_datetime('2014-01-02', dayfirst=False)], 'b':[pd.to_datetime('2019-01-01', dayfirst=False)]})
df['diff'] = df['a'].dt.dayofyear - df['b'].dt.dayofyear
df

Out[131]: 
           a          b  diff
0 2014-01-02 2019-01-01     1

推荐阅读