簡體   English   中英

在 pandas 中,從日期系列中減去日期以獲得天數系列

[英]In pandas subtract date from series of date to get series of number of days

在我的 CSV 文件中,我有一個包含日期和時間的列,格式為 6/1/2019 12:00:00 AM。 我的要求是從所有行中刪除時間,然后行將只有日期。 在此之后,我必須從基准日期 1/1/2019 中減去所有行,因此該行應該只有天數。 例如,如果我們從 1/1/2019 中減去 6/1/2019,該行的值為 6。

我試過下面的代碼來刪除時間。

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

如何從列中的每一行中減去日期 1/1/2019 並使用 pandas 和 python 日期時間庫獲取天數?

從日期時間中刪除Series.dt.floor的時間(將它們轉換為00:00:00 )並減去日期時間,最后將 output timedeltas 轉換為Series.dt.days的天數:

df = pd.read_csv('sample.csv', header = 0, parse_dates=['date'])

df['days'] = df['date'].dt.floor('d').sub(pd.Timestamp('2019-01-01')).dt.days

樣本

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM