データフレームの時刻を秒に換算する

2020年12月21日

データフレームの時刻を秒に換算する

競馬の分析を始めるにあたってタイム差を算出する為には必須なので調べてみました。
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')

2020年12月21日