У меня есть CSV-файл, содержащий множество пропущенных значений. Я пытаюсь использовать пакет 'fancyimpute' для вменения пропущенных значений, используя метод 'KNN ()'.
DataFrame pandas, содержащий CSV-файл, имеет 7 атрибутов / столбцов, а 8-й атрибут, который является «временем», но используется в качестве индекса для DataFrame.
data.isnull (). Сумма (). Сумма ()
data.isnull (). Сумма ()
MemoryError Traceback (самый последний вызов
последний) в
----> 1 заполнено_на = KNN (k = 3) .fit_transform (data_date_idx)
~ / .local / lib / python3.6 / site-packages / fancyimpute / solver.py в
fit_transform (self, X, y)
187 тип (X_filled)))
188
-> 189 X_result = self.solve (X_filled, missing_mask)
190, если не isinstance (X_result, np.ndarray):
191 повышение TypeError (
~ / .local / lib / python3.6 / site-packages / fancyimpute / knn.py в resol (self,
X, пропущенная маска)
102 k = self.k,
103 verbose = self.verbose,
-> 104 print_interval = self.print_interval)
105
106 failed_to_impute = np.isnan (X_imputed)
~ / .local / Библиотека / python3.6 / сайт-пакеты / knnimpute / few_observed_entries.py
в knn_impute_few_observed (X, пропущенная маска, k, подробный,
print_interval)
49 X_column_major = X.copy (order = "F")
50 X_row_major, D ,ffective_infinity = \
---> 51 knn_initialize (X, missing_mask, verbose = verbose)
52 # избавиться от бесконечностей, заменить их на очень большое количество
53 D_sorted = np.argsort (D, ось = 1)
~ / .local / lib / python3.6 / site-packages / knnimpute / common.py в
knn_initialize (X, пропущенная маска, многословный, min_dist,
max_dist_multiplier)
37 # положить обратно NaN в матрицу данных для функции расстояний
38 X_row_major [missing_mask] = np.nan
---> 39 D = all_pairs_normalized_distances (X_row_major)
40 D_finite_flat = D [np.isfinite (D)]
41 if len (D_finite_flat)> 0:
~ / .local / Библиотека / python3.6 / сайт-пакеты / knnimpute / normalized_distance.py
в all_pairs_normalized_distances (X)
36
37 # матрица среднего квадрата разницы между образцами
---> 38 D = np.ones ((n_rows, n_rows), dtype = "float32", order = "C") * np.inf
39
40 # мы можем дешево определить количество столбцов, которые разделяют две строки
~ / .local / lib / python3.6 / site-packages / numpy / core / numeric.py в
единицы (форма, тип, порядок)
221
222 "" "
-> 223 a = пусто (форма, тип, порядок)
224 multiarray.copyto (a, 1, casting = 'unsafe')
225 возврат
MemoryError: