Как получить данные, которые имеют максимальные значения в матрице данных столбца кадра? - PullRequest
0 голосов
/ 31 октября 2018

Я хотел бы получить ячейку с максимальным значением, например

  A   B  C
A 1   5  5
B 2   6  3
C 0.5 1  2

Выход:

Max 5 -> (A,B), (A,C)
Max 6 -> (B)
Max 2 -> (C)

Я пробовал это

col_new = df.columns.values
row_new = df.index.values

for row, cols in df.iterrows():
    for col in range(len(df)):
        if col_new == df.max():
            print("Max (", row_new[row], ',', col_new[col], ')')

но на выходе ничего нет

1 Ответ

0 голосов
/ 31 октября 2018

Использование:

for row, cols in df.iterrows():
    max_value = cols.max()
    cols_list = cols[cols==max_value].index.tolist()

    if len(cols_list)>1:
        row_list = [row]*len(cols_list)
        tup = tuple(zip(row_list,cols_list))
        print(f'Max {max_value} -> {tup}')
    else:
        print(f'Max {max_value} -> {row,}')



Max 5.0 -> (('A', 'B'), ('A', 'C'))
Max 6.0 -> ('B',)
Max 2.0 -> ('C',)

Мы умножаем список на количество столбцов max как:

print(['A']*3)
['A', 'A', 'A']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...