Найти разницу между двумя датами, игнорируя год в python3 - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь найти разницу между двумя датами, игнорируя год. Итак, скажем, если я хочу найти разницу между 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

Ответы [ 2 ]

0 голосов
/ 18 января 2019

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

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])

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

0 голосов
/ 18 января 2019

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