データフレームの時刻を秒に換算する
データフレームの時刻を秒に換算する
競馬の分析を始めるにあたってタイム差を算出する為には必須なので調べてみました。
datetime→timedeltaと型を変更させることで、時刻を秒に変換する「total_seconds()」メソッドが使用できるようになるみたいですね。
早速やってみます。
参考:時刻データを全て秒に変換する方法
コード
# CSVを読み込む
df = pd.read_csv('./csv_dir/netkeiba.csv')
# 値を確認する
df['race_time']
# 0 1:46.2
# 1 1:46.9
# 2 1:47.0
# 3 1:47.1
# 4 1:47.3
# ...
# 型を確認する
df['race_time'].dtype
# dtype('O')
# total_secondsを持つtimedelta型に変換
base_time = pd.to_datetime('00:00.0', format='%M:%S.%f')
df['race_time']=pd.to_datetime(df['race_time'], format='%M:%S.%f') - base_time
# 値を確認する
df['race_time'].dt.total_seconds()
# 0 106.2
# 1 106.9
# 2 107.0
# 3 107.1
# 4 107.3
# ...
# 20237 106.9
# 20238 106.9
# 20239 107.0
# 20240 108.4
# 20241 109.9
# Name: race_time, Length: 20242, dtype: float64
# 型を確認する
df['race_time'].dtypes
# dtype('<m8[ns]')
# タイム差を確認する
df.loc[1, 'race_time'] - df.loc[0, 'race_time']
# Timedelta('0 days 00:00:00.700000')
ディスカッション
コメント一覧
まだ、コメントがありません