Интерполировать выше и ниже диапазона значений в столбце — Pandas

#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