Начиная с df, как у вас:
t1 = (1,2)
t2 = (3,4)
cols = ['A', 'B']
rows = []
for a in range(2):
rows.append([t1,t2])
df = pd.DataFrame(rows, columns=cols)
df
A B
0 (1, 2) (3, 4)
1 (1, 2) (3, 4)
Я думаю, что первая проблема - это ваши столбцы, вам нужно в два раза больше.Сбросьте столбцы следующим образом:
df.columns = [(x+"L", x+'R') for x in df.columns]
df
(AL, AR) (BL, BR)
0 (1, 2) (3, 4)
1 (1, 2) (3, 4)
Теперь вы можете просто закодировать цикл следующим образом:
newRows = []
oneRow = []
for index, row in df.iterrows():
oneRow = []
for a in range(len(row)):
oneRow += list(row[a])
oneRow = [str(x) for x in oneRow] #<- this changes everything to strings
newRows.append(oneRow)
newRows
[['1', '2', '3', '4'], ['1', '2', '3', '4']]
сделать то же самое для столбцов:
newCols = []
for a in range(len(df.columns)):
newCols += list(df.columns[a])
newCols
['AL', 'AR', 'BL', 'BR']
и затем соедините все это вместе:
dfNew = pd.DataFrame(newRows, columns=newCols)
dfNew
AL AR BL BR
0 1 2 3 4
1 1 2 3 4
для меня, я думаю, что должен быть намного лучший путь, может быть, даже 1-строчный, но этот работает, и вы можете двигаться дальше санализ.