簡體   English   中英

當時間戳中僅存在時間時,如何在日期時間對象中添加日期

[英]How to add the date in a datetime object when only time is present in timestamp

我正在處理一些時間序列數據,並且時間戳僅包含time( HH:MM:SS ),但是我需要將YY/MM/DD到時間戳中。 我使用熊貓數據框。

我嘗試使用pd.to_datetime(),但是它輸入了我稱之為的當前日期。

df_17c = pd.read_csv(file_17c,sep ='\t', header = None,names=['TimeStamp','x','y','z'],  usecols =[0,3,4,5])

df_17s = pd.read_csv(file_17s,sep ='\t', header = None,names = ['TimeStamp','x','y','z'],usecols =[0,1,2,3])

 TimeStamp      x    y  z
0  23:59:58  26799 -218  0
1  23:59:58  26797 -218  0
2  23:59:58  26795 -218  0
3  23:59:58  26793 -218  0
4  23:59:58  26792 -217  0


“ TimeStamp”列是對象類型(字符串)。 當我使用.to_datetime()轉換時,它將產生帶有當前日期的datetime對象。

df_17c["Date"]= pd.to_datetime(df_17c['TimeStamp'])

            TimeStamp      x    y  z
0 2019-06-26 23:59:58  26799 -218  0
1 2019-06-26 23:59:58  26797 -218  0
2 2019-06-26 23:59:58  26795 -218  0
3 2019-06-26 23:59:58  26793 -218  0
4 2019-06-26 23:59:58  26792 -217  0

這可能不是最有效的方法,但是很簡單(基本上將日期添加到字符串的開頭)

date = '2017-01-09T'  # or whatever (note the T)
pd.to_datetime(df['TimeStamp'].apply(lambda s: date+s)) 

df = pd.DataFrame({'time': ['08:11:09', '17:09:34']})

#   time
# 0  08:11:09
# 1  17:09:34

date_func = '2017-01-09T{}'.format  # avoid the use of lambda + more efficient

df['datetime'] = pd.to_datetime(df['time'].apply(date_func))

輸出

       time            datetime
0  08:11:09   2017-01-09 08:11:09
1  17:09:34   2017-01-09 17:09:34

暫無
暫無

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

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