Используя Python Pandas, я пытаюсь найти Country
& Place
с максимальным значением.
Это возвращает максимальное значение:
data.groupby(['Country','Place'])['Value'].max()
Но как мне получить соответствующее Country
и Place
имя?
Предполагая, что df
имеет уникальный индекс, это дает строку с максимальным значением:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
Обратите внимание, что idxmax
возвращает метки индекса . Таким образом, если DataFrame имеет дубликаты в индексе, метка может не однозначно идентифицировать строку, поэтому df.loc
может возвращать более одной строки.
Следовательно, если у df
него нет уникального индекса, вы должны сделать индекс уникальным, прежде чем действовать, как указано выше. В зависимости от DataFrame иногда можно использовать stack
или, set_index
чтобы сделать индекс уникальным. Или вы можете просто сбросить индекс (чтобы строки были перенумерованы, начиная с 0):
df = df.reset_index()
Это вернет всю строку с максимальным значением
источник
Страна и место - это индекс серии, если вам не нужен индекс, вы можете установить
as_index=False
:Редактировать:
Кажется, вам нужно место с максимальным значением для каждой страны, следующий код сделает то, что вы хотите:
источник
Я думаю, что самый простой способ вернуть строку с максимальным значением - получить ее индекс.
argmax()
может использоваться для возврата индекса строки с наибольшим значением.Теперь индекс можно использовать для получения функций для этой конкретной строки:
источник
Используйте
index
атрибутDataFrame
. Обратите внимание, что я не набираю все строки в примере.Вы также можете получить значение по этому индексу:
редактировать
Извините за недопонимание, что вы хотите, попробуйте следующее:
источник
Чтобы напечатать страну и место с максимальным значением, используйте следующую строку кода.
источник
Мое решение для поиска максимальных значений в столбцах:
, также минимум:
источник
Я бы рекомендовал использовать
nlargest
для лучшей производительности и более короткого кода. Импортироватьpandas
источник
Ты можешь использовать:
print (df [df ['Значение'] == df ['Значение']. max ()])
источник
import pandas
df - это созданный вами фрейм данных.
Используйте команду:
Это отобразит страну и место, значение которых является максимальным.
источник
Я столкнулся с аналогичной ошибкой при попытке импортировать данные с помощью панд. В первом столбце моего набора данных были пробелы перед началом слов. Я удалил пробелы, и это сработало как шарм !!
источник