簡體   English   中英

如何在 Pandas 中減去日期和時間?

[英]How to subtract date and time in Pandas?

我有來自 Pandas 的數據,這是 CSV 文件的內容:

Date                Inbound     Outbound
17/10/2019 12:35    5.49E+02    3.95E+03 
17/10/2019 12:40    2.06E+02    3.17E+03 
17/10/2019 12:45    2.06E+02    3.17E+03 
17/10/2019 12:50    2.06E+02    3.17E+03 
17/10/2019 12:55    2.06E+02    3.17E+03 
17/10/2019 13:00    2.06E+02    3.17E+03
....

我的目標是將Date列從時間戳轉換為以分鍾為單位的時間段,這應該會導致如下所示:

    Date        Inbound     Outbound
    0           5.49E+02    3.95E+03 
    5           2.06E+02    3.17E+03 
    10          2.06E+02    3.17E+03 
    15          2.06E+02    3.17E+03 
    20          2.06E+02    3.17E+03 
    25          2.06E+02    3.17E+03

您可以使用減去第一個時間戳來計算差異,然后獲取total_seconds()並轉換為分鍾:

df['Date'] = pd.to_datetime(df['Date'])

df['Date'] = (df.Date.sub(df.Date.iloc[0])
   .dt.total_seconds().div(60).astype(int)
)

Output:

   Date  Inbound  Outbound
0     0    549.0    3950.0
1     5    206.0    3170.0
2    10    206.0    3170.0
3    15    206.0    3170.0
4    20    206.0    3170.0
5    25    206.0    3170.0
import pandas as pd

data = [
"17/10/2019 12:35",  
"17/10/2019 12:40",  
"17/10/2019 12:45", 
"17/10/2019 12:50",  
"17/10/2019 12:55",  
"17/10/2019 13:00",
    ]

columns = ["Date"]

df = pd.DataFrame(data, columns = columns)
# Because the values came in frm a CSV, they are not datetime objects. 
# Convert the column to datetime ojects
df['Date'] = pd.to_datetime(df['Date'])
subtractdate = df["Date"].iloc[0]
df["Diff"] = df["Date"].apply(lambda x: x - subtractdate)    
print(df)

編輯:

要獲取分鍾,請執行以下操作...

df["Diff"] = df["Date"].apply(lambda x: (x - subtractdate).seconds/60)

(x - 減日期) 返回一個timedelta 它沒有“分鍾”選項,但有幾秒鍾。 這將以float格式返回(即5.010.0

要將其作為字符串獲取,請執行以下操作:

df["Diff"] = df["Date"].apply(lambda x: str( (x - subtractdate).seconds/60  ) ) 

並將其作為 int 獲取:

df["Diff"] = df["Date"].apply(lambda x: int( (x - subtractdate).seconds/60  ) ) 

int將是 "5, 10, 15" 格式。

暫無
暫無

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

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