#python-3.x #pandas #scipy
#python-3.x #pandas #scipy
Вопрос:
Я искал способ расширить значения диапазона внутри столбца Pandas путем интерполяции, но я до сих пор не знаю, как установить «пределы» интерполяции, я имею в виду, это что-то вроде:
[Distance] [Radiation]
12 120
13 130
14 140
15 150
16 160
17 170
Итак, то, что я пытаюсь получить, — это полный диапазон столбца [Излучение] в соответствии с полной безопасностью столбца [Расстояние] путем интерполяции.
[Distance] [Radiation]
1 10
2 20
. .
. .
12 120
13 130
14 140
15 150
16 160
. .
. .
20 200
Я искал документацию по методам pandas и scipy, но, думаю, пока не смог ее найти.
Спасибо за ваши идеи.
Ответ №1:
Одна из идей заключается в использовании DataFrame.reindex
для добавления всех несуществующих значений расстояния, а затем использования DataFrame.interpolate
barycentric
метода with:
df = (df.set_index('Distance')
.reindex(range(1, 21))
.interpolate(method='barycentric', limit_direction='both')
.reset_index())
print (df)
Distance Radiation
0 1 10.0
1 2 20.0
2 3 30.0
3 4 40.0
4 5 50.0
5 6 60.0
6 7 70.0
7 8 80.0
8 9 90.0
9 10 100.0
10 11 110.0
11 12 120.0
12 13 130.0
13 14 140.0
14 15 150.0
15 16 160.0
16 17 170.0
17 18 180.0
18 19 190.0
19 20 200.0
Комментарии:
1. Читая о барицентрическом методе, я увидел, что он оценивает полином Лагранжа выборки, он неплохо подходит для моей проблемы, большое спасибо @jezrael