今天和日期python之间的差异

问题描述 投票:0回答:1

我有一个熊猫数据框,其中的列是这种格式:

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()
python time arithmetic-expressions
1个回答
0
投票

类似这样的方法应该起作用:

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
© www.soinside.com 2019 - 2024. All rights reserved.