Итак, я загружаю много данных из базы данных SQL и записываю их в фрейм данных в PyCharm. Основываясь на данных в одном столбце, мне нужно создать больше столбцов и добавить их во фрейм данных. При этом я получаю сообщение об ошибке «Не удается выделить массив с формами (x, 91000) и dtype int32» - x всегда находится между 200 и 400. Я искал «Ошибка памяти» и уже изменил «vm». options ", так что у PyCharm больше памяти - я все еще получаю ошибку памяти.
Так что я думаю, что мне нужно изменить свой код. Я создаю новые столбцы с помощью следующего кода:
list = pd.unique(df['name'])
list.sort()
for idx in list:
col1 = '%s Col1' % idx
df[col1] = np.int32(0)
df.loc[(df['name'].values == idx ) & (df['level'].values == 4), col1] = df.loc[(df['name'].values == idx ) & (df['level'].values == 4), 'xyz']
Я делаю это для 7 новых столбцов на уникальное имя. В последние дни я много исследовал, и, как я понял, python сначала создает копию моего фрейма данных, затем фильтрует фрейм данных с моими условиями и, наконец, отфильтрованные данные перемещаются в исходный фрейм данных. При выделении копии фрейма данных возникает ошибка памяти (наверное).
Вопрос в том, можно ли сделать то же самое на месте - без копии фрейма данных? Я думаю, что это исправит мою ошибку памяти.