pandasで重複した複数行の平均値を取る

ミリ秒単位の時系列データを扱っていた時、秒単位で集計した際に重複する時間が複数発生した。

同じ時間の値は平均値を取りたくなったが、dupulicatedやdrop_duplicatedでは上手く出来なかった。

以下の書籍の405ページから始まる章を参考に、groupbyで時間単位のdfを作ってaggregateすることで解決できた。

time_col = ["date", "hour", "minute", "second"]
df = df.groupby(time_col).aggregate(np.mean)

参考

pandas.DataFrame.groupby — pandas 2.2.1 documentation

pandas.DataFrame.aggregate — pandas 2.2.1 documentation

コメント

タイトルとURLをコピーしました