df1 = pd.DataFrame({
'A':[1,2],
'B':[2,3]
})
df2 = pd.DataFrame({
'A':[2,2],
'B':[2,3]
})
df3 = pd.DataFrame({
'A':[1,1],
'B':[2,2]
})
dfs = [df1, df2, df3]
pd.concat(dfs,keys=['first', 'second','third'])
Дальше почитай доки ты можешь делать выборки по любому уровню. На самом деле много способов решения. Если хочешь более конкретной помощи. Сделай 3 маленьких фрейма, как у меня в примере мне нужно вот из этих фреймов получить вот такой выхлоп. И сделай фрейм или series или массив что ты хочешь получить. А так мне сложно гадать, была конкретика есть вот это нужно получить вот то. И на конкретных маленьких фреймах. 3 фрейма или 3000 их потом будет это не важно. Принцип.