簡體   English   中英

如何將時間范圍 (19:00-20:00) 轉換為時間戳/日期時間對象?

[英]How do you convert a Time Range (19:00-20:00) to a TimeStamp/Date Time object?

我的 DF 有一個范圍為 1 小時的列時間。 19:00-20:00、20:00-21:00、21:00-22:00等。 我有另一個列在這些時間中記錄了值,例如 50 、 40 、 10 。

我想知道一天中哪個小時的值最高等等。有沒有辦法可以將時間從范圍轉換為單個值,例如 19:00,然后提取小時?

Df['Time'] = pd.to_datetime(Df['Time']) I tried this but got error 

Out of bounds nanosecond timestamp: 1-01-01 19:00:00

首先使用Series.str.split ,然后通過to_timedelta將值轉換為to_timedelta

df = pd.DataFrame({'Time':['19:00-20:00', '20:00-21:00', '21:00-22:00']})

df[['first', 'second']] = (df['Time'].str.split('-', expand=True)
                                     .add(':00')
                                     .apply(pd.to_timedelta))
print (df)
          Time    first   second
0  19:00-20:00 19:00:00 20:00:00
1  20:00-21:00 20:00:00 21:00:00
2  21:00-22:00 21:00:00 22:00:00

print (df.dtypes)
Time               object
first     timedelta64[ns]
second    timedelta64[ns]
dtype: object

或者通過to_datetime到日期to_datetime

df[['first', 'second']] = df['Time'].str.split('-', expand=True).apply(pd.to_datetime)
print (df)
          Time               first              second
0  19:00-20:00 2019-08-04 19:00:00 2019-08-04 20:00:00
1  20:00-21:00 2019-08-04 20:00:00 2019-08-04 21:00:00
2  21:00-22:00 2019-08-04 21:00:00 2019-08-04 22:00:00

print (df.dtypes)
Time              object
first     datetime64[ns]
second    datetime64[ns]
dtype: object

這是提取日期時間部分的可能簡單方法,例如小時,時間......:

df['hour1'] = df['first'].dt.hour
df['time1'] = df['first'].dt.time
print (df)
          Time               first              second  hour1     time1
0  19:00-20:00 2019-08-04 19:00:00 2019-08-04 20:00:00     19  19:00:00
1  20:00-21:00 2019-08-04 20:00:00 2019-08-04 21:00:00     20  20:00:00
2  21:00-22:00 2019-08-04 21:00:00 2019-08-04 22:00:00     21  21:00:00

print (df.dtypes)
Time              object
first     datetime64[ns]
second    datetime64[ns]
hour1              int64
time1             object
dtype: object

暫無
暫無

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

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