In [15]: def sum_col(df, col, new_col):
....: df[new_col] = df[col].sum()
....: return df
In [16]: df.groupby("A").apply(sum_col, 'values', 'sum_values_A')
Out[16]:
A B values sum_values_A
0 1 1 10 25
1 1 2 15 25
2 2 1 20 45
3 2 2 25 45
Это зависит от вашего кода. Прежде всего, если вы работаете с рекурсивным методом, jvm сохраняет каждый объект в куче и содержит ссылку на каждый объект в стеке. Если вы хотите предотвратить эту ошибку, вы должны инициализировать неиспользуемый объект как ноль.
Если вам абсолютно необходим такой большой массив (и я рекомендую вам дважды подумать, прежде чем использовать этот большой массив и искать лучшее решение для памяти), вы можете увеличить максимальный объем памяти Java-программы во время запуска с помощью аргумента [ 110]
Например: java -jar myProgram.jar -Xmx1G
использовать 1 ГБ в качестве памяти максимального размера кучи (обратите внимание, что если этого недостаточно, вы можете увеличить больше)
Обратите внимание, что вы также можете указать начальный размер кучи с помощью аргумент -Xms