我有以下玩具熊貓資料框命名df:
df = pd.DataFrame({'begin' : ['08:00', '10:00', '14:00'],
'end' : ['14:00', '17:00', '22:00']})
begin end
08:00 14:00
10:00 17:00
14:00 22:00
我想計算begin和end時間之間的差異(以小時為單位)。這是我的嘗試:
df['begin'] = pd.to_datetime(df['begin'])
df['end'] = pd.to_datetime(df['end'])
df['diff_hours'] = (df['end'] - df['begin']) / pd.Timedelta(hours=1)
這產生:
begin end diff_hours
0 2021-12-28 08:00:00 2021-12-28 14:00:00 6
1 2021-12-28 10:00:00 2021-12-28 17:00:00 7
2 2021-12-28 14:00:00 2021-12-28 22:00:00 8
這種方法采用當前日期。我想從上面的輸出中去除當前日期,這樣df就變成:
begin end diff_hours
0 08:00:00 14:00:00 6
1 10:00:00 17:00:00 7
2 14:00:00 22:00:00 8
在此先感謝您提供的任何幫助!
uj5u.com熱心網友回復:
將時間強制轉換為日期時間,減去并將結果轉換為小時
df['diff_hours']=(pd.to_datetime(df['end'], format="%H:%M")-pd.to_datetime(df['begin'], format="%H:%M")).astype('timedelta64[m]')/60
begin end diff_hours
0 08:00 14:00 6.0
1 10:00 17:00 7.0
2 14:00 22:00 8.0
uj5u.com熱心網友回復:
您可以像這樣將日期時間轉換為時間:
df['begin'] = df['begin'].dt.time
df['end'] = df['end'].dt.time
begin end diff_hours
0 08:00:00 14:00:00 6.0
1 10:00:00 17:00:00 7.0
2 14:00:00 22:00:00 8.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/397692.html
