簡體   English   中英

pandas - 將時間和日期從兩個 dataframe 列組合到一個日期時間列

[英]pandas - combine time and date from two dataframe columns to a datetime column

這是此處接受的解決方案的后續問題。

我有一個 pandas dataframe:

在一列中,“時間”是以下列格式存儲的時間:“ HHMMSS ”(例如 203412 表示 20:34:12)。

在另一列“日期”中,日期以以下格式存儲:“ YYmmdd ”(例如 200712 表示 2020-07-12)。 YY代表對 2000 年的附加。

例子:

import pandas as pd

data = {'time': ['123455', '000010', '100000'],
        'date': ['200712', '210601', '190610']}

df = pd.DataFrame(data)

print(df)

#     time    date
#0  123455  200712
#1  000010  210601
#2  100000  190610

我需要第三列,其中包含其他兩列的組合日期時間格式(例如2020-07-12 12:34:55 )。 到目前為止,我只能修改時間,但我不知道如何添加日期。

df['datetime'] = pd.to_datetime(df['time'], format='%H%M%S')

print(df)

#     time    date            datetime
#0  123455  200712 1900-01-01 12:34:55
#1  000010  210601 1900-01-01 00:00:10
#2  100000  190610 1900-01-01 10:00:00

如何在df['datetime']列中添加df['date']列中的日期,以便 dataframe 為:

     time    date            datetime
0  123455  200712 2020-07-12 12:34:55
1  000010  210601 2021-06-01 00:00:10
2  100000  190610 2019-06-10 10:00:00

我發現了這個問題,但我不確定如何將它用於我的目的。

您可以先連接列,然后指定格式:

df['datetime'] = pd.to_datetime(df['date'] + df['time'], format='%y%m%d%H%M%S')
print(df)
     time    date            datetime
0  123455  200712 2020-07-12 12:34:55
1  000010  210601 2021-06-01 00:00:10
2  100000  190610 2019-06-10 10:00:00

如果可能 integer 列:

df['datetime'] = pd.to_datetime(df['date'].astype(str) + df['time'].astype(str), format='%y%m%d%H%M%S')

暫無
暫無

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

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