Если я правильно понимаю, вам нужно объединить 40 кадров данных формы (1M, 100) в один df, что приведет к (40M, 100) форме.
Если это так, вы можете сделатькак то так (написано на Numpy, но идея применима):
out = np.zeros((4000000, 10))
row_size = 1000000
for i in range(40):
out[i * row_size : i * row_size + row_size, :] = datai #ith dataframe