У меня есть два pandas кадра данных df1 и df2 и фрагмент кода, который генерирует редкую матрицу:
from scipy import sparse
sparse_matrix = sparse.coo_matrix((df['r'].astype('category').cat.codes, \
(df['u'].astype('category').cat.codes, \
df['i'].astype('category').cat.codes)))
, где df['r']
- это int, но df['u']
и df['i']
- строки, вот почему у меня есть
astype('category').cat.codes
Датафреймы df1
и df2
два больших, чтобы объединить их (у меня ошибка памяти).
Идея состоит в том, чтобы сгенерировать sparse_matrix_df1
и sparse_matrix_df2
отдельно, а затем объединить их. Проблема в том, что df['u']
и df['i']
иногда имеют одинаковые значения в df1 и df2, в этом случае df['r']
следует суммировать, поэтому я не могу просто объединить sparse_matrix_df1
и sparse_matrix_df2
.
Как получить sparse_matrix и сохранить правильные ключи? Возможно, можно думать о проблеме как о добавлении df к sparse-matrix в пакетном стиле, так сказать.