Как интерполировать в Python? - PullRequest
0 голосов
/ 18 июня 2020

Я хочу сделать линейную интерполяцию столбца Value_B в моем фрейме данных df2. Как я могу сделать это с помощью python простым способом?

df2 = pd.DataFrame(np.array([[1, 2, 10], [2, 5, ''], [3, 8, 30], [4, 2, ''], [5, 5, 50], [6, 8, '']]), columns=['Angle', 'Value_A', 'Value_B'])

df2

Результат Value_B должен быть 10, '20', 30, '40', 50, '60'.

Ответы [ 3 ]

1 голос
/ 18 июня 2020

pandas interpolate() функция

df2.interpolate(method ='linear', limit_direction ='forward') 

Вы даже можете интерполировать назад и установить пределы

df.interpolate(method ='linear', limit_direction ='backward', limit = 1)
0 голосов
/ 18 июня 2020
df2['Value_B']=df2['Value_B'].apply(pd.to_numeric).replace('',np.nan, regex=True).interpolate() #empty cells need to be Nan
0 голосов
/ 18 июня 2020

Я понял, что нам нужно сначала преобразовать столбцы df2 в numeri c перед интерполяцией. Затем мы можем следить за ответом @leopardxpreload

for col in df2.columns:
    df2[col] = pd.to_numeric(df2[col], errors='coerce')
df = df2.interpolate(method ='linear', limit_direction ='forward')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...