Создать новый столбец, отсортированный по значениям в строках - PullRequest
0 голосов
/ 17 октября 2019

Нужно создать новый набор столбцов, которые сортируются по значениям в строках.

Хотелось бы повернуть это ...

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...