Игнорировать NaN без изменения длины в Python - PullRequest
1 голос
/ 22 сентября 2019

Я новичок в Python и пытаюсь выполнить сплайн-интерполяцию.Мои данные содержат 3 столбца с количеством строк, имеющих «NaN» в одном из столбцов.Мне нужно игнорировать / удалить NaN без уменьшения длины.Я пробовал несколько способов, но каждый раз длина сокращается.Буду признателен за любую помощь или совет.


import numpy as np
import pandas as pd
import scipy.linalg 
import matplotlib.style
import math

data = pd.read_excel('prob_data.xlsx')
np.array(data['A'])
np.array(data['B'])
np.array(data['C'])

x = abun_data['A'][~np.isnan(abun_data['A'])]
print(len(x))
z = abun_data['B'][~np.isnan(abun_data['B'])]
print(len(z))
y = abun_data['C'][~np.isnan(abun_data['C'])]
print(len(y))

1 Ответ

0 голосов
/ 22 сентября 2019

Вы можете использовать класс SimpleInputer:

from sklearn.impute import SimpleImputer
inputer = SimpleImputer(strategy='median')
data = pd.read_excel('prob_data.xlsx')
nice_data = pd.DataFrame(imputer.fit_transform(data))
...