Нужно создать новый набор столбцов, которые сортируются по значениям в строках.
Хотелось бы повернуть это ...
A 1 B 2 C 3
A 1 C 1 B 2
B 2 C 3 A 1
C 1 A 3 B 3
C 1 B 3 A 2
в. ..
ABC
1 2 3
1 2 1
1 2 3
3 3 1
2 3 1
Мне удалось решить в Excel, используя цикл if.
A = []
B = []
C = []
D = []
for row in df['A']:
if row == "A":
A.append(df.loc[df['A'] == row, '1'].iloc[0])
if row == "B":
B.append(df.loc[df['A'] == row, '1'].iloc[0])
if row == "C":
C.append(df.loc[df['A'] == row, '1'].iloc[0])
if row == "D":
D.append(df.loc[df['A'] == row, '1'].iloc[0])
for row in df['B']:
if row == "A":
A.append(df.loc[df['B'] == row, '2'].iloc[0])
if row == "B":
B.append(df.loc[df['B'] == row, '2'].iloc[0])
if row == "C":
C.append(df.loc[df['B'] == row, '2'].iloc[0])
if row == "D":
D.append(df.loc[df['B'] == row, '2'].iloc[0])
for row in df['C']:
if row == "A":
A.append(df.loc[df['C'] == row, '3'].iloc[0])
if row == "B":
B.append(df.loc[df['C'] == row, '3'].iloc[0])
if row == "C":
C.append(df.loc[df['C'] == row, '3'].iloc[0])
if row == "D":
D.append(df.loc[df['C'] == row, '3'].iloc[0])
df['A Sort'] = A
df['B Sort'] = B
df['C Sort'] = C