Найти разницу между двумя датами, игнорируя год в 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

Итак, без учета года, сколько дней между 27 февраля и 1 марта?

Robby Cornelissen 18.01.2019 09:44
1
1
218
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте 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

Вы можете сделать так

import pandas as pd

df = pd.DataFrame({"date": pd.date_range(start='2019-01-01', periods=10)})

print(df["date"])
print(df["date"].dt.day[3] - df["date"].dt.day[2])

дайте мне знать, если вы столкнулись с какой-либо проблемой.

Это не сработает, ОП хочет порядковый день года, вы вычитаете день месяца

EdChum 18.01.2019 10:03

Другие вопросы по теме