【4 weeks challenge – Python】Day 26 欠損値を前後の値の平均値で補完する “interpolate”

daily_trial

こんにちは、しらすです。

26日目です。本日の習得スキルは「欠損値を前後の値の平均値で補完する」です!

欠損値を前後の値の平均値で補完するでできること

数値列の欠損値を、前後の値から平均値で補完することができます。これにより、時系列データを簡単に扱うことができると期待できます。

使い方

import pandas as pd

df = pd.DataFrame({'col1': [0, pd.np.nan, pd.np.nan, 3, 4],
                   'col2': [pd.np.nan, 1, 2, pd.np.nan, pd.np.nan],
                   'col3': [4, pd.np.nan, pd.np.nan, 9, 10]})

#欠損部分を補完する interpolate
result = df.interpolate().rount(1)

結果

上記のように、欠損値を前後の値から平均して補完することができました。値に囲われていない部分(col2の0番目)はNaNのまま、後ろの欠損値(col2の3,4番目)は最後の値(col2の2番目)を使って埋められています。

おためし編

axisを指定することで、行方向に平均をとって補完することができます。(デフォルトではaxis = 0となっています。そのため列方向で補完が実行されます)

result1 = df.interpolate(axis=1).round(1)

参考

pandasで欠損値NaNを前後の値から補間するinterpolate | note.nkmk.me
pandas.DataFrame, pandas.Seriesの欠損値NaNを前後の値から補間するにはinterpolate()メソッドを使う。 pandas.DataFrame.interpolate — pandas 2.0.3 documentation pandas.Series.interpolate — p...

コメント