Это имеет для меня полный смысл:
import numpy as np
import pandas as pd
nan = np.nan
df = pd.DataFrame.from_dict({'col1': (10, nan, nan, 5)})
df_int = df.interpolate(method='linear', limit_area='inside')
print(df_int)
Вывод:
col1
0 10.000000
1 8.333333
2 6.666667
3 5.000000
Сценарий, который не имеет смысла
IУ меня есть следующий код для интерполяции мультииндексированного df:
for body_part in self.body_parts:
for comp in ('x', 'y'):
print(comp)
new_df.loc[:, (body_part, comp)] = \
new_df.loc[:, (body_part, comp)].interpolate(
method='spline', order=4,
limit_area='inside')
Зная, что MultiIndexed df не поддерживает сплайн, я выделил отдельные части df в один столбец.
Iсохраните полученную df кода сверху в int_pol и извлеките значения x и y определенной body_part, в данном случае переноса:
x_ni = int_pol['nose']['x']
y_ni = int_pol['nose']['y']
Clean - это df, который мы используем для интерполяции.Мы можем использовать это, чтобы сравнить результат с неизмененной версией данных:
x_nc = clean['nose']['x']
y_nc = clean['nose']['y']
Построение точек Я получаю это:
Я также сравнилзначения x после их сортировки для визуализации разницы:
Что-то явно не так с интерполяцией.Есть идеи, в чем может быть проблема?