Добавьте столбцы в фрейм данных pandas, содержащий максимум каждой строки И соответствующее имя столбца.Python

Программы на Python
Anonymous
Добавьте столбцы в фрейм данных pandas, содержащий максимум каждой строки И соответствующее имя столбца.

Сообщение Anonymous »

Моя система

Windows 7, 64-разрядная версия

python 3.5. 1

Задача

У меня есть фрейм данных pandas, и я хотелось бы узнать максимальное значение для каждой строки и добавить эту информацию в качестве нового столбца. Еще хотелось бы узнать название столбца, в котором находится максимальное значение. И я хотел бы добавить еще один столбец в существующий фрейм данных, содержащий имя столбца, в котором можно найти максимальное значение.

Похожий вопрос был задан и дан ответ для Р в этом посте.

Воспроизводимый пример

Код: Выделить всё

In[1]:
# Make pandas dataframe
df = pd.DataFrame({'a':[1,0,0,1,3], 'b':[0,0,1,0,1], 'c':[0,0,0,0,0]})

# Calculate max
my_series = df.max(numeric_only=True, axis = 1)
my_series.name = "maxval"

# Include maxval in df
df = df.join(my_series)
df

Out[1]:
a  b  c  maxval
0   1  0  0  1
1   0  0  0  0
2   0  1  0  1
3   1  0  0  1
4   3  1  0  3
Пока все хорошо. Теперь что касается добавления еще одного столбца в существующий фрейм данных, содержащего имя столбца:

Код: Выделить всё

In[2]:
?
?
?

# This is what I'd like to accomplish:
Out[2]:
a  b  c  maxval maxcol
0   1  0  0  1      a
1   0  0  0  0      a,b,c
2   0  1  0  1      b
3   1  0  0  1      a
4   3  1  0  3      a
Обратите внимание: мне хотелось бы вернуть все имена столбцов, если несколько столбцов содержат одно и то же максимальное значение. Также обратите внимание, что столбец maxval не включен в maxcol, поскольку это не имеет особого смысла. Заранее спасибо, если кому-нибудь это покажется интересным.

Подробнее здесь: https://stackoverflow.com/questions/382 ... ponding-co

Вернуться в «Python»