вот пара подходов, которые я начал перед вашим последним комментарием ... из комментария кажется, что первый метод может быть вам полезен, если вы немного его адаптируете
в основном вы можете l oop через df фрагментами и выполнять операции, которые вы хотите, с каждым фрагментом за раз вместо всего df
import numpy as np
import pandas as pd
data = np.random.rand(1000,3)
df = pd.DataFrame(data)
# LOOPING BY CHUNKS, STORING EACH CHUNK IN A NP ARRAY INSIDE A LIST
ix = 0
chunk = 10
arrays = []
for iy in range(chunk, len(df)+chunk, chunk):
arrays.append(df.iloc[ix:iy].values)
ix = iy
# ENTIRE DF TO NP ARRAY
array = df.values
# LOOPING BY CHUNKS, APPENDING EACH CHUNK TO A SINGLE NP ARRAY
ix = 0
chunk = 10
array = np.empty((0,3))
for iy in range(chunk, len(df)+chunk, chunk):
array = np.concatenate((array, df.iloc[ix:iy].values))
ix = iy