Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melakukan Pengagregatan Data dengan Panda?

Bagaimana untuk Melakukan Pengagregatan Data dengan Panda?

Patricia Arquette
Patricia Arquetteasal
2024-12-18 06:11:11449semak imbas

How to Perform Data Aggregation with Pandas?

Pengagregatan dalam Panda

Dengan Panda, anda boleh melakukan pelbagai operasi pengagregatan untuk mengurangkan dimensi dan meringkaskan data.

Soalan 1: Bagaimanakah saya boleh melakukan pengagregatan dengan Panda?

Panda menyediakan banyak pengagregatan fungsi, termasuk min(), sum(), count(), min(), dan max(). Anda boleh menggunakan fungsi ini untuk mengira statistik ringkasan bagi setiap kumpulan. Contohnya:

# Calculate mean of each group based on 'A' and 'B' columns
df1 = df.groupby(['A', 'B']).mean()

# Print the results
print(df1)

Soalan 2: Tiada DataFrame selepas pengagregatan! Apa yang berlaku?

Apabila anda menggunakan pengagregatan pada berbilang lajur, objek yang terhasil boleh menjadi Siri atau DataFrame bergantung pada bilangan lajur yang dikumpulkan.

  • Siri: Jika anda mengumpulkan dengan satu atau lebih lajur, hasilnya ialah Siri dengan indeks yang sepadan dengan kumpulan.
  • DataFrame: Jika anda mengumpulkan hanya dengan satu lajur, hasilnya ialah DataFrame dengan lajur yang sepadan dengan lajur asal.

Untuk mendapatkan DataFrame dengan semua lajur, gunakan as_index=False dalam fungsi kumpulan mengikut.

Soalan 3: Bagaimana bolehkah saya mengagregatkan terutamanya lajur rentetan (ke senarai, tupel, rentetan dengan pemisah)?

Untuk mengagregatkan lajur rentetan, anda boleh menggunakan senarai, tupel atau operasi gabungan.

  • Senarai: Tukar lajur kepada senarai menggunakan list() atau GroupBy.apply(list).
  • Tuple: Tukar lajur kepada tuple menggunakan tuple() atau GroupBy.apply(tuple).
  • String dengan pemisah: Gabungkan rentetan dengan pemisah menggunakan str.join().

Contohnya:

# Convert 'B' column values to a list for each group
df1 = df.groupby('A')['B'].agg(list).reset_index()

# Combine 'B' column values into a string with separator for each group
df2 = df.groupby('A')['B'].agg(','.join).reset_index()

Soalan 4: Bagaimanakah saya boleh mengagregatkan kiraan?

Untuk mengira nilai yang tidak hilang dalam setiap kumpulan, gunakan GroupBy.count(). Untuk mengira semua nilai, termasuk yang hilang, gunakan GroupBy.size().

Contohnya:

# Count non-missing values in 'C' column for each group
df1 = df.groupby('A')['C'].count().reset_index(name='COUNT')

# Count all values in 'A' column for each group
df2 = df.groupby('A').size().reset_index(name='COUNT')

Soalan 5: Bagaimanakah saya boleh mencipta lajur baharu yang diisi dengan nilai agregat?

Anda boleh menambah lajur baharu yang mengandungi nilai agregat menggunakan kaedah transform(). Fungsi transform() menggunakan operasi yang ditentukan untuk setiap kumpulan dan mengembalikan objek baharu dengan saiz yang sama seperti yang asal.

Contohnya:

# Create a new 'C1' column with the sum of 'C' grouped by 'A'
df['C1'] = df.groupby('A')['C'].transform('sum')

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengagregatan Data dengan Panda?. 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