Python 在pandas中,从日期序列中减去日期,得到天数序列
在我的CSV文件中,有一列显示日期和时间,格式为6/1/2019 12:00:00 AM。 我的要求是从所有行中删除时间,然后该行将只有日期。在此之后,我必须从基准日期2019年1月1日减去所有行,因此该行应该只有天数。例如,如果我们从2019年1月1日减去2019年6月1日,则该行的值为6 我试着用下面的代码来删除时间Python 在pandas中,从日期序列中减去日期,得到天数序列,python,pandas,datetime,Python,Pandas,Datetime,在我的CSV文件中,有一列显示日期和时间,格式为6/1/2019 12:00:00 AM。 我的要求是从所有行中删除时间,然后该行将只有日期。在此之后,我必须从基准日期2019年1月1日减去所有行,因此该行应该只有天数。例如,如果我们从2019年1月1日减去2019年6月1日,则该行的值为6 我试着用下面的代码来删除时间 import pandas as pd df = pd.read_csv('sample.csv', header = 0) from datetime import date
import pandas as pd
df = pd.read_csv('sample.csv', header = 0)
from datetime import datetime,date
df['date'] = pd.to_datetime(df['date']).dt.date
如何使用pandas和python datetime库从列中的每一行中减去日期2019年1月1日,并获得天数?从datetimes中删除时间(将其转换为00:00:00
),然后减去datetime,最后将输出时间增量转换为天:
样本:
df = pd.DataFrame({'date': pd.date_range('2019-01-06 12:00:00', periods=10)})
df['days'] = df['date'].dt.floor('d').sub(pd.Timestamp('2019-01-01')).dt.days
print (df)
date days
0 2019-01-06 12:00:00 5
1 2019-01-07 12:00:00 6
2 2019-01-08 12:00:00 7
3 2019-01-09 12:00:00 8
4 2019-01-10 12:00:00 9
5 2019-01-11 12:00:00 10
6 2019-01-12 12:00:00 11
7 2019-01-13 12:00:00 12
8 2019-01-14 12:00:00 13
9 2019-01-15 12:00:00 14
df = pd.DataFrame({'date': pd.date_range('2019-01-06 12:00:00', periods=10)})
df['days'] = df['date'].dt.floor('d').sub(pd.Timestamp('2019-01-01')).dt.days
print (df)
date days
0 2019-01-06 12:00:00 5
1 2019-01-07 12:00:00 6
2 2019-01-08 12:00:00 7
3 2019-01-09 12:00:00 8
4 2019-01-10 12:00:00 9
5 2019-01-11 12:00:00 10
6 2019-01-12 12:00:00 11
7 2019-01-13 12:00:00 12
8 2019-01-14 12:00:00 13
9 2019-01-15 12:00:00 14