pandas.Series
は通常のAPIのほかに、内部に格納されているデータの型に応じた操作を行う Accessorが提供されております。
これには、
- 内部に格納された文字列型のデータの操作を行う
.str
Accessor
- 内部に格納されたカテゴリ型のデータの操作を行う
.cat
、Accessor
- Datetimme型やTimedelta型のデータの操作を行う
.dt
Accessor
などがあります。
(あたりまえのことですが、これらのAccessorは対応した型以外のデータには適用できません)
これを使って実際に使ってどんなことが出来るかは、下記のAPIの一覧を見ることでだいたい理解できるかと思います。
https://pandas.pydata.org/pandas-docs/stable/reference/series.html#datetimelike-properties
で、今回使用する.dt.total_seconds()
ですが、どちらかというと datedelta型に対して行われる操作ですね。
実際に動作させてみると
Python
1import pandas as pd
2
3df = pd.DataFrame({'time': ['0:15:00', '0:30:00', '1:00:00']})
4df['time'] = pd.to_timedelta(df['time'])
5# time
6#0 00:15:00
7#1 00:30:00
8#2 01:00:00
のような TimeDelta型のデータが格納された列に対して
print(df['time'].dt.total_seconds())
#0 900.0
#1 1800.0
#2 3600.0
#Name: time, dtype: float64
のように accessorを通して操作することができます。