Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencari Baris dengan Nilai Maksimum dalam Lajur Tertentu dalam Bingkai Data Pandas?

Bagaimana untuk Mencari Baris dengan Nilai Maksimum dalam Lajur Tertentu dalam Bingkai Data Pandas?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 00:23:30934semak imbas

How to Find the Row with the Maximum Value in a Specific Column in a Pandas DataFrame?

Cari Baris dengan Nilai Lajur Maksimum dalam Bingkai Data Pandas

Dalam analisis data, ia boleh menjadi berharga untuk mengenal pasti baris tertentu dalam DataFrame di mana lajur tertentu mempamerkan nilai tertingginya. Tugas ini boleh dicapai dengan mudah menggunakan fungsi idxmax dalam Pandas.

Menggunakan idxmax

Fungsi idxmax mengembalikan label indeks (label baris) sepadan dengan nilai maksimum dalam lajur yang diberikan. Contohnya:

<code class="python">import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
max_index = df['A'].idxmax()

print(max_index)  # Output: 2</code>

Kod ini mengeluarkan label indeks baris yang mengandungi nilai maksimum dalam lajur 'A', iaitu 2.

Pilihan Alternatif

Selain idxmax, anda juga boleh menggunakan fungsi argmax NumPy, yang menyediakan fungsi yang serupa:

<code class="python">import numpy as np

max_index = np.argmax(df['A'])   # Output: 2</code>

Pertimbangan Sejarah

Dalam versi terdahulu Pandas (sebelum 0.11), argmax dikenali sebagai idxmax. Walau bagaimanapun, ia telah ditamatkan dan dialih keluar. Mulai Pandas 0.16, argmax telah diperkenalkan semula dan melaksanakan fungsi yang sama seperti idxmax, tetapi ia mungkin berjalan lebih perlahan.

Mengendalikan Label Baris Pendua

Adalah penting untuk ambil perhatian bahawa idxmax mengembalikan label indeks, bukannya indeks integer. Ini menjadi penting jika anda mempunyai label baris pendua. Sebagai contoh, DataFrame berikut mempunyai label baris pendua 'i':

<code class="python">df = pd.DataFrame({'A': [0.1, 0.2, 0.3, 0.4], 'B': [0.5, 0.6, 0.7, 0.8], 'C': [0.9, 1.0, 1.1, 1.2]}, index=['a', 'b', 'c', 'i', 'i'])
max_index = df['A'].idxmax()

print(max_index)  # Output: i</code>

Dalam kes ini, idxmax mengembalikan label 'i', yang tidak jelas kerana ia muncul dua kali. Untuk mendapatkan kedudukan integer baris dengan nilai maksimum, anda boleh mendapatkannya secara manual menggunakan kaedah iloc atau ix:

<code class="python">max_row = df.iloc[max_index]</code>

Nuansa ini harus dipertimbangkan apabila berurusan dengan label baris pendua.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Baris dengan Nilai Maksimum dalam Lajur Tertentu dalam Bingkai Data Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn