Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengira Statistik Bijak Kumpulan (Kiraan, Min, dll.) dalam Pandas GroupBy?

Bagaimana untuk Mengira Statistik Bijak Kumpulan (Kiraan, Min, dll.) dalam Pandas GroupBy?

Barbara Streisand
Lepaskan: 2024-12-28 04:36:10
asal
537 orang telah melayarinya

How to Calculate Group-wise Statistics (Count, Mean, etc.) in Pandas GroupBy?

Dapatkan Statistik untuk Setiap Kumpulan (Kiraan, Min, dll) Menggunakan Kumpulan PandaBy

Masalah:

Anda mempunyai DataFrame df dalam Panda dan ingin mengira statistik mengikut kumpulan seperti min, kiraan dan banyak lagi pada berbilang lajur.

Jawapan Pantas:

Untuk mendapatkan kiraan baris setiap kumpulan, cuma panggil .size(), yang mengembalikan Siri:

df.groupby(['col1','col2']).size()
Salin selepas log masuk

Untuk hasil DataFrame dengan dikira sebagai lajur, gunakan:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Salin selepas log masuk
Salin selepas log masuk

Contoh Terperinci:

Pertimbangkan DataFrame df:

  col1 col2  col3  col4  col5  col6
0    A    B  0.20 -0.61 -0.49  1.49
1    A    B -1.53 -1.01 -0.39  1.82
2    A    B -0.44  0.27  0.72  0.11
3    A    B  0.28 -1.32  0.38  0.18
4    C    D  0.12  0.59  0.81  0.66
5    C    D -0.13 -1.65 -1.64  0.50
6    C    D -1.42 -0.11 -0.18 -0.44
7    E    F -0.00  1.42 -0.26  1.17
8    E    F  0.91 -0.47  1.35 -0.34
9    G    H  1.48 -0.63 -1.14  0.17
Salin selepas log masuk

Mendapatkan Baris Kiraan:

df.groupby(['col1', 'col2']).size()
Salin selepas log masuk

Output:

col1  col2
A     B       4
C     D       3
E     F       2
G     H       1
dtype: int64
Salin selepas log masuk

Mencipta DataFrame dengan Kiraan:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Salin selepas log masuk
Salin selepas log masuk

Output:

  col1 col2  counts
0    A    B       4
1    C    D       3
2    E    F       2
3    G    H       1
Salin selepas log masuk

Termasuk Keputusan untuk Lagi Statistik:

Untuk mengira statistik tambahan seperti min, median dan min, gunakan agg():

(df
.groupby(['col1', 'col2'])
.agg({
    'col3': ['mean', 'count'],
    'col4': ['median', 'min', 'count']
}))
Salin selepas log masuk

Output:

            col4                  col3      
          median   min count      mean count
col1 col2                                   
A    B    -0.810 -1.32     4 -0.372500     4
C    D    -0.110 -1.65     3 -0.476667     3
E    F     0.475 -0.47     2  0.455000     2
G    H    -0.630 -0.63     1  1.480000     1
Salin selepas log masuk

Memisahkan Statistik kepada Agregasi Individu:

Untuk lebih kawalan ke atas keluarkan, bahagikan statistik dan gabungkannya menggunakan join:

gb = df.groupby(['col1', 'col2'])
counts = gb.size().to_frame(name='counts')
(counts
 .join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'}))
 .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'}))
 .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'}))
 .reset_index()
)
Salin selepas log masuk

Output:

  col1 col2  counts  col3_mean  col4_median  col4_min
0    A    B       4  -0.372500       -0.810     -1.32
1    C    D       3  -0.476667       -0.110     -1.65
2    E    F       2   0.455000        0.475     -0.47
3    G    H       1   1.480000       -0.630     -0.63
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengira Statistik Bijak Kumpulan (Kiraan, Min, dll.) dalam Pandas GroupBy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan