Вот как бы я это сделал, прежде чем прочесть ответы других людей на ваш вопрос:
import pandas as pd
def concat_every(frame, every):
frame = frame.copy()
new_df = pd.DataFrame(
columns=range(len(frame.columns)//every)
)
for c in new_df.columns:
col = frame.columns
new_df[c] = pd.concat(
[frame.pop(col[i]) for i in range(every)],
ignore_index=True
)
return new_df
df = pd.DataFrame({
0:['a','g','m','s','y'],
1:['b','h','n','t','z'],
2:['c','i','o','u',1],
3:['d','j','p','v',2],
4:['e','k','q','w',3],
5:['f','l','r','x',4],
})
df1 = concat_every(df, 2)
print(df)
print(df1)
Python Tutor Ссылка на код