Разница между сегодняшним днем ​​и датой питона - PullRequest
0 голосов
/ 24 октября 2019

У меня есть фрейм данных pandas, в котором столбец имеет следующий формат:

0         1983-02-07
1         1989-10-07
2         1969-10-28
3         1967-02-25
4         1982-07-21
             ...    
328970    1995-06-09
328971    1999-01-11
328972    1962-04-01
328973    1996-05-19
328974    1994-03-03
Name: Nascita - Data, Length: 328975, dtype: object

я хотел бы сделать что-то вроде

df['datecolumn']-datetime.now()

1 Ответ

0 голосов
/ 24 октября 2019

Примерно так должно работать:

import pandas as pd
from datetime import datetime
data = ["1983-02-07", 
"1989-10-07", 
"1969-10-28", 
"1967-02-25", 
"1982-07-21"]

df = pd.DataFrame(data, columns = ["Date"])
print(df)
df["Date"] = pd.to_datetime(df['Date'])
#df["Difference"] = df["Date"].apply(lambda x: x-datetime.now())

# Alternate code
from dateutil.relativedelta import relativedelta
df["Difference"] = df["Date"].apply(lambda x: relativedelta(datetime.now(), x).years)
print(df)

Вывод:

Date
0  1983-02-07
1  1989-10-07
2  1969-10-28
3  1967-02-25
4  1982-07-21

Date                   Difference
0 1983-02-07 -13409 days +06:41:00.418879
1 1989-10-07 -10975 days +06:41:00.418728
2 1969-10-28 -18259 days +06:41:00.418671
3 1967-02-25 -19235 days +06:41:00.418630
4 1982-07-21 -13610 days +06:41:00.418591

КОД ВЫХОДНОГО АЛЬТЕРНАТА:

Date
0  1983-02-07
1  1989-10-07
2  1969-10-28
3  1967-02-25
4  1982-07-21

Date  Difference
0 1983-02-07          36
1 1989-10-07          30
2 1969-10-28          49
3 1967-02-25          52
4 1982-07-21          37
...