Menggunakan Python Pandas Saya mencoba mencari Country
& Place
dengan nilai maksimum.
Ini mengembalikan nilai maksimum:
data.groupby(['Country','Place'])['Value'].max()
Tapi bagaimana cara mendapatkan nama Country
dan yang sesuai Place
?
Dengan asumsi df
memiliki indeks unik, ini memberikan baris dengan nilai maksimum:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
Perhatikan bahwa idxmax
mengembalikan label indeks . Jadi jika DataFrame memiliki duplikat dalam indeks, label mungkin tidak secara unik mengidentifikasi baris tersebut, sehingga df.loc
dapat mengembalikan lebih dari satu baris.
Oleh karena itu, jika df
tidak memiliki indeks unik, Anda harus membuat indeks unik sebelum melanjutkan seperti di atas. Bergantung pada DataFrame, terkadang Anda dapat menggunakan stack
atau set_index
membuat indeks menjadi unik. Atau, Anda dapat mengatur ulang indeks (sehingga baris dinomori ulang, mulai dari 0):
df = df.reset_index()
Ini akan mengembalikan seluruh baris dengan nilai maks
sumber
Negara dan tempat adalah indeks rangkaian, jika Anda tidak membutuhkan indeks, Anda dapat mengatur
as_index=False
:Edit:
Tampaknya Anda menginginkan tempat dengan nilai maksimal untuk setiap negara, kode berikut akan melakukan apa yang Anda inginkan:
sumber
Saya pikir cara termudah untuk mengembalikan baris dengan nilai maksimum adalah dengan mendapatkan indeksnya.
argmax()
dapat digunakan untuk mengembalikan indeks baris dengan nilai terbesar.Sekarang indeks dapat digunakan untuk mendapatkan fitur untuk baris tertentu itu:
sumber
Gunakan
index
atributDataFrame
. Perhatikan bahwa saya tidak mengetik semua baris dalam contoh.Anda juga bisa mendapatkan nilainya dengan indeks itu:
Edit
Maaf karena salah paham apa yang Anda inginkan, coba berikut ini:
sumber
Untuk mencetak Negara dan Tempat dengan nilai maksimum, gunakan baris kode berikut.
sumber
Solusi saya untuk menemukan nilai maksimum di kolom:
, juga minimum:
sumber
Saya akan merekomendasikan penggunaan
nlargest
untuk kinerja yang lebih baik dan kode yang lebih pendek. imporpandas
sumber
Kamu bisa memakai:
print (df [df ['Value'] == df ['Value']. max ()])
sumber
import pandas
df adalah bingkai data yang Anda buat.
Gunakan perintah:
Ini akan menampilkan negara dan tempat yang nilainya maksimal.
sumber
Saya mengalami kesalahan serupa saat mencoba mengimpor data menggunakan panda, Kolom pertama di kumpulan data saya memiliki spasi sebelum awal kata. Saya menghapus spasi dan itu bekerja seperti pesona !!
sumber