我有一個字典串列:
mylist=
[{'Start Time': '02:13:40', 'End Time': '14:13:10'},
{'Start Time': '03:12:30', 'End Time': '13:07:45'},
{'Start Time': '05:03:20', 'End Time': '17:23:10'},
...
{'Start Time': '08:23:40', 'End Time': '19:23:40'}]
我想追加一個記錄開始時間和結束時間之間時間差的新列。我嘗試了以下方法:
dfmylist = pd.DataFrame(mylist)
dfmylist["new"] = (dfmylist['End Time'] - dfmylist['Start Time'])
它給了我錯誤:TypeError: unsupported operand type(s) for -: 'str' and 'str'
我認為是因為時間資料還沒有轉換成字串,所以我嘗試了以下方法:
dfmylist['Start Time'] = pd.to_timedelta(dfmylist['Start Time'] ).dt.strftime('%hh:%mm:%ss')
但我收到了錯誤:ValueError: expected hh:mm:ss format
uj5u.com熱心網友回復:
您可以使用以下內容在一行中執行此操作。
dfmylist["new"] = pd.to_datetime(dfmylist["End Time"]) - pd.to_datetime(dfmylist["Start Time"])
uj5u.com熱心網友回復:
我們可以像這樣添加以下格式%H:%M:%S:
dfmylist['Start Time'] = pd.to_datetime(dfmylist['Start Time'], format="%H:%M:%S")
dfmylist['End Time'] = pd.to_datetime(dfmylist['End Time'], format="%H:%M:%S")
要獲得預期的結果:
>>> dfmylist["new"] = (dfmylist['End Time'] - dfmylist['Start Time'])
>>> dfmylist
Start Time End Time new
0 1900-01-01 02:13:40 1900-01-01 14:13:10 0 days 11:59:30
1 1900-01-01 03:12:30 1900-01-01 13:07:45 0 days 09:55:15
2 1900-01-01 05:03:20 1900-01-01 17:23:10 0 days 12:19:50
3 1900-01-01 08:23:40 1900-01-01 19:23:40 0 days 11:00:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435584.html
下一篇:熊貓資料框之間的矩陣乘法
