困っていること
データ行列内に時間が含まれているデータフレームがあります。
この時間の列に対して、
行間の差を時間(秒)で取得したいと考えており、
microsecondを含んでいる行もあることから
以下のコードを作成しました。
しかし、24時間を超えると、
例えば 24:01:03 とかになると、
以下のようなエラーが出てしまい、動作しません。
(※ 24を超えない他のデータセットだとうまく動作するのですが)
これを回避して、計算しつづけるような工夫をしたいのですが、
どなたか詳しい方、ご教授お願い致します。
データフレーム(時間)
[time] 0 1900-01-01 00:00:00 1 1900-01-01 00:00:15.984000 2 1900-01-01 00:00:17.971000 3 1900-01-01 00:00:19.958000 4 1900-01-01 00:00:20.995000 . . . 7516 37:12:07 7517 37:12:15 7518 37:12:20 7519 37:12:29 7520 37:12:35 7521 37:12:40 7522 37:12:44 Name:"time", Length:7522, dtype:object
書いたコード
time_data=[] for i in range(len(df)): cnt=0 try: df['time'][i] = pd.to_datetime(df['time'][i], format='%H:%M:%S') except: df['time'][i] = pd.to_datetime(df['time'][i], format='%H:%M:%S.%f') cnt+=df['time'][i].hour*60*60 cnt+=df['time'][i].minute*60 cnt+=df['time'][i].second time_data.append(cnt) df['timeX']=time_data
発生したエラー
ValueError: time data '24:01:03' does not match format '%H:%M:%S.%f' (match)
回答2件
あなたの回答
tips
プレビュー