Я пытаюсь предварительно обработать данные для дальнейшего анализа.Сначала я читаю данные из CSV-файла (x).
Затем я делю их на три части.Наконец, мне нужно преобразовать один массив, используя get_dummies
, concat
и sum
для результата groupby
.
import pandas as pd
RawData_v2_clear=pd.read_csv('C:\\Users\\User\\Documents\\top200users_filtered.csv',
sep=';', usecols = ['Username', 'Code', 'Object'], error_bad_lines=False,
encoding='latin-1')
dfU = RawData_v2_clear['Username']
dfT = RawData_v2_clear['Code']
dfO = RawData_v2_clear['Object']
del RawData_v2_clear, dfO (to free up some memory)
df_newT = pd.concat([dfU,pd.get_dummies(dfT)],axis=1)
df_new_gbyT = df_newT.groupby('Username').sum()
Raw_Data_V2_clear
имеет форму (~ 11 миллионов строк x 3 столбца).
Error:
File "c:\Users\User\Desktop\Faulty_Skript.py", line XXX, in <module>
df_newT = pd.concat([dfU,pd.get_dummies(dfT)],axis=1).sum()
File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 866, in get_dummies
dtype=dtype)
File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 963, in _get_dummies_1d
dummy_mat = np.eye(number_of_cols, dtype=dtype).take(codes, axis=0)
MemoryError
В другой системе эта операция занимает некоторое время, но завершается без Memory Error
.Может быть, у кого-то есть хорошая идея, чтобы исправить эту проблему с памятью?Может быть, append более дружественен к памяти, чем concat?Однако моя реализация append также не удалась в моей текущей системе.
Большое спасибо!