Предварительная обработка Sklearn Imputer, когда в столбце отсутствуют значения

1

Я пытаюсь использовать Imputer для отсутствия значений. Я хотел бы отслеживать все столбцы со всеми отсутствующими значениями, но, поскольку в противном случае я не знаю, какой из них (столбцов) был обработан: возможно ли вернуть столбцы со всеми отсутствующими значениями?

Примененные примечания

Когда ось = 0, столбцы, содержащие только отсутствующие значения при подгонке, отбрасываются при преобразовании. Когда ось = 1, возникает исключение, если есть строки, для которых невозможно заполнить недостающие значения (например, потому что они содержат только отсутствующие значения).

import pandas as pd
import numpy as np
from sklearn.preprocessing import Imputer
data={'b1':[1,2,3,4,5],'b2':[1,2,4,4,0],'b3':[0,0,0,0,0]}
X= pd.DataFrame(data)
Imp = Imputer(missing_values=0)
print (Imp.fit_transform(X))

print(X)
   b1  b2  b3
0   1   1   0
1   2   2   0
2   3   4   0
3   4   4   0
4   5   0   0

runfile
[[ 1.    1.  ]
 [ 2.    2.  ]
 [ 3.    4.  ]
 [ 4.    4.  ]
 [ 5.    2.75]]
Теги:
scikit-learn
preprocessor

1 ответ

1
Лучший ответ

Атрибут statistics_ из класса Imputer возвращает значение заполнения для каждого столбца, включая отброшенные.

statistics_: массив формы (n_features,)
Значение вменения заполняет для каждой функции, если ось == 0.

Imp.statistics_
array([3.  , 2.75,  nan])

Пример получения столбцов столбцов со всеми "отсутствующими" значениями.

nanmask = np.isnan(Imp.statistics_)

nanmask
array([False, False,  True])

X.columns[nanmask]
Index([u'b3'], dtype='object')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню