2017-03-05 76 views
2

我正在讀取標題中具有年 - 月 - 日的文本日誌文件,以及每行包含小時:分鐘:秒的列。類似的排序:將大熊貓數據框中的起始日期與時間列結合爲日期時間

Yr=17 Mn= 3 Dy= 3 

19:22:59.894  52 
19:24:12.130  106 
19:24:13.241  107 
... 

我的日期爲datetime.date對象:例如: datetime.date(2017, 3, 3)。我有時間作爲系列:

df['Time'] = pd.to_datetime(df['Time strings'], format='%H:%M:%S.%f') 

我怎樣才能將標量日期與時間數組加在一起?

此外,其中一些日誌已經過了午夜。我想我需要使用類似numpy.unwrap()的東西繼續下一個日期,但我不知道如何使用pandas.datetime來做到這一點。

回答

3

而不是在時間上使用pd.to_datetime,您可以使用pd.to_timedelta。然後,您可以簡單地將該文件的日期時間添加到整個列中,並將其轉換爲日期時間列。

times = ['4:23:12.12', '11:25:43.23', '14:29:55.42'] 

df = pd.DataFrame(dict(times=times)) 

df.times = pd.to_timedelta(df.times) 

df 
#    times 
# 0 04:23:12.120000 
# 1 11:25:43.230000 
# 2 14:29:55.420000 

file_date = datetime.date(2017, 3, 3) 

df.times += file_date 

df 
#      times 
# 0 2017-03-03 04:23:12.120 
# 1 2017-03-03 11:25:43.230 
# 2 2017-03-03 14:29:55.420

或者,你可以嘗試用parse_dates讀時輸入的日期/時間。