Używając Python Pandas próbuję znaleźć Country
& Place
o maksymalnej wartości.
Zwraca maksymalną wartość:
data.groupby(['Country','Place'])['Value'].max()
Ale jak mogę uzyskać odpowiedni Country
i Place
nazwę?
Zakładając, że df
ma unikalny indeks, daje to wiersz o maksymalnej wartości:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
Zauważ, że idxmax
zwraca etykiety indeksowe . Więc jeśli DataFrame ma duplikaty w indeksie, etykieta może nie identyfikować jednoznacznie wiersza, więc df.loc
może zwrócić więcej niż jeden wiersz.
Dlatego jeśli df
nie ma unikalnego indeksu, należy uczynić go unikalnym przed wykonaniem czynności opisanych powyżej. W zależności od ramki DataFrame czasami można użyć stack
lub, set_index
aby indeks był unikalny. Możesz też po prostu zresetować indeks (aby wiersze zostały ponumerowane, zaczynając od 0):
df = df.reset_index()
To zwróci cały wiersz z maksymalną wartością
źródło
Kraj i miejsce to indeks serii, jeśli nie potrzebujesz indeksu, możesz ustawić
as_index=False
:Edytować:
Wygląda na to, że chcesz mieć miejsce z maksymalną wartością dla każdego kraju, poniższy kod zrobi to, co chcesz:
źródło
Myślę, że najłatwiejszym sposobem zwrócenia wiersza z maksymalną wartością jest pobranie jego indeksu.
argmax()
można użyć do zwrócenia indeksu wiersza o największej wartości.Teraz indeks może zostać użyty do pobrania funkcji dla tego konkretnego wiersza:
źródło
Użyj
index
atrybutuDataFrame
. Zwróć uwagę, że nie wpisuję wszystkich wierszy w przykładzie.Możesz również uzyskać wartość według tego indeksu:
Edytować
Przepraszamy za nieporozumienie, czego chcesz, spróbuj wykonać następujące czynności:
źródło
Aby wydrukować kraj i miejsce z maksymalną wartością, użyj następującego wiersza kodu.
źródło
Moje rozwiązanie do znajdowania maksymalnych wartości w kolumnach:
, również minimum:
źródło
Polecam używanie go
nlargest
dla lepszej wydajności i krótszego kodu. importpandas
źródło
Możesz użyć:
print (df [df ['Wartość'] == df ['Wartość']. max ()])
źródło
import pandas
df to tworzona przez Ciebie ramka danych.
Użyj polecenia:
Spowoduje to wyświetlenie kraju i miejsca, których wartość jest maksymalna.
źródło
Napotkałem podobny błąd podczas próby importowania danych przy użyciu pand. Pierwsza kolumna w moim zestawie danych zawiera spacje przed początkiem słów. Usunąłem przestrzenie i działało jak urok!!
źródło