У меня есть следующий код для маски фильтрации ДФА:Как создать разреженную булевую маску в Пандах?
for i, y in enumerate(cols) :
dfm = df[y].str.contains(s)
mask= dfm if i==0 else np.column_stack((mask, dfm))
DF не является редким, но маска результаты фильтрации является редкой.
Хранение маски в полном булевом режиме требует большого объема памяти при наличии большого кадра данных (50mi rows * 100columns).
Так что, как результат маски очень скуден (0,1% ИСТИНА), интересно, если есть способ использовать редкую булеву маску вместо маски массива для того, чтобы снизить нагрузку на память ...
Не удался найти в любом решении даже в Pandas уже имеется разреженный массив. Поскольку это не ясно, как использовать его для хранения и использования маски. т.е.
mask_sparse = pd.SparseArray(mask)
EDIT 2: Разъяснение вопроса: Могут ли мы получить непосредственно фильтр результата маски в разреженный массив без манипулирования полного массива?
Я очень смущен. Вам нужно приложить больше усилий для объяснения того, что у вас есть, чего хотите, и попробовали. прочитайте это, чтобы лучше понять, как максимально увеличить вероятность ответа на ваш вопрос ... [mcve] (http://stackoverflow.com/help/mcve) – piRSquared
thx, я отредактировал мой вопрос, чтобы сделать его более понятным. – deepmind27
http://stackoverflow.com/questions/36523861/can-pandas-sparseseries-store-values-in-the-float16-dtype - единственный вопрос, который я нахожу, который обсуждает 'pd.SparseArray'. Есть несколько других, которые занимаются разреженными кадрами данных или сериями. – hpaulj