Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mendapatkan Baris dengan Kiraan Maksimum dalam Bingkai Data Pandas Berkumpulan?

Bagaimana untuk Mendapatkan Baris dengan Kiraan Maksimum dalam Bingkai Data Pandas Berkumpulan?

DDD
DDDasal
2024-12-20 07:14:12764semak imbas

How to Get Rows with the Maximum Count in Grouped Pandas DataFrames?

Dapatkan Baris dengan Kiraan Maks dalam Bingkai Data Panda Berkumpulan

Masalah:

Dapatkan semula semua baris daripada DataFrame panda yang mempunyai nilai maksimum untuk lajur "kira", dikumpulkan mengikut "Sp" dan "Mt" lajur.

Contoh:

Contoh 1:

Input DataFrame:

Sp Mt Value count
MM1 S1 a 3
MM1 S1 n 2
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 2
MM4 S2 uyi 7

Dijangka Output:

Sp Mt Value count
MM1 S1 a 3
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM4 S2 uyi 7

Contoh 2:

Input DataFrame:

Sp Mt Value count
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 8
MM4 S2 uyi 8

Dijangka Output:

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

Penyelesaian:

  1. Dapatkan Kiraan Maks bagi setiap Kumpulan:
import pandas as pd

df.groupby(['Sp', 'Mt'])['count'].max()

Ini mengembalikan Siri dengan kiraan maksimum untuk setiap gabungan unik "Sp" dan "Mt".

  1. Buat Topeng Boolean:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']

Ini mencipta topeng Boolean di mana True menunjukkan baris dengan kiraan maksimum dalam kumpulan mereka.

  1. Tapis DataFrame:
df[idx]

Ini menapis DataFrame untuk memasukkan hanya baris dengan topeng idx adalah True, menghasilkan output yang diingini.

Nota: Berbilang baris dengan kiraan maksimum yang sama akan dikembalikan jika ia berlaku dalam kumpulan yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Baris dengan Kiraan Maksimum dalam Bingkai Data Pandas Berkumpulan?. 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