IIU C, вы можете использовать следующий подход:
Предполагая, что ваш фрейм данных выглядит следующим образом:
print(df)
0
0 Chennai
1 6200SqFT
2 10,000 Population
3 Mumbai
4 5000sqFT
5 17,000 Population
Решение с np.reshape
output = pd.DataFrame(df[0].to_numpy().reshape(-1,3))
#or output = pd.DataFrame(df[0].values.reshape(-1,3))
Вывод:
0 1 2
0 Chennai 6200SqFT 10,000 Population
1 Mumbai 5000sqFT 17,000 Population
Если у вас неровные линии (не кратные 3, попробуйте):
output = pd.concat([g.reset_index(drop=True)
for _,g in df.groupby(df.index//3)],axis=1).T.reset_index(drop=True)