スプライン補間したい(scipy.interpolate.CubicSpline
)
1import pandas as pd
2import numpy as np
3from scipy.interpolate import CubicSpline
4
5# サンプルデータを作成
6points = {
7 "x": [0, 1, 2, 3, 4, 5],
8 "y": [0, np.nan, 2, np.nan, 4, 5]
9}
10data = pd.DataFrame(points)
11
12# データ点から欠損値を除外
13valid_data = data.dropna()
14x_valid = valid_data["x"]
15y_valid = valid_data["y"]
16
17# スプライン補間
18f_splined = CubicSpline(x_valid, y_valid)
19
20# 欠損値を補間
21x_data = data["x"]
22data["y_splined"] = f_splined(x_data)
scipy.interpolate.CubicSpline
を使って、データをスプライン補間できます。
スプライン補間したい(scipy.interpolate.interp1d
)
1import pandas as pd
2import numpy as np
3from scipy.interpolate import interp1d
4
5# サンプルデータを作成
6points = {
7 "x": [0, 1, 2, 3, 4, 5],
8 "y": [0, np.nan, 2, np.nan, 4, 5]
9}
10data = pd.DataFrame(points)
11
12# データ点から欠損値を除外
13valid_data = data.dropna()
14x_valid = valid_data["x"]
15y_valid = valid_data["y"]
16
17# スプライン補間
18f_splined = interp1d(x_valid, y_valid, kind="cubic", fill_value="extrapolate")
19
20# 欠損値を補間
21x_data = data["x"]
22data["y_splined"] = f_splined(x_data)
scipy.interpolate.interp1d
を使って、データをスプライン補間できます。
注釈
interp1d
はレガシーなクラスとなっています。
将来的に削除される可能性があるので、別のクラスに移行した方がよさそうです。