Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengeluarkan Kesatuan Rentetan dengan Cekap daripada Bingkai Data Pandas Berkumpulan?

Bagaimana untuk Mengeluarkan Kesatuan Rentetan dengan Cekap daripada Bingkai Data Pandas Berkumpulan?

Patricia Arquette
Patricia Arquetteasal
2024-10-25 05:48:291084semak imbas

How to Efficiently Extract the Union of Strings from Grouped Pandas DataFrames?

Union of Strings in Pandas GroupBy

Soalan ini menangani cabaran biasa: mengekstrak kesatuan rentetan daripada Pandas DataFrame yang dikumpulkan mengikut satu lajur. Malangnya, menggunakan fungsi sum() pada lajur yang mengandungi rentetan tidak menggabungkannya. Sebaliknya, artikel ini meneroka kaedah alternatif untuk mencapai hasil yang diingini.

Menggunakan GroupBy dengan Fungsi Tersuai

Satu penyelesaian adalah untuk menentukan fungsi tersuai yang menggunakan operasi tertentu kepada setiap kumpulan. Sebagai contoh, kita boleh menggunakan kaedah apply() untuk mengulangi kumpulan dan mengembalikan nilai yang diingini. Begini caranya:

<code class="python">def my_function(group):
    return "{%s}" % ', '.join(group['C'])</code>

Fungsi ini menggabungkan rentetan dalam lajur 'C' setiap kumpulan ke dalam set yang disertakan dalam pendakap kerinting.

<code class="python">df.groupby('A')['C'].apply(my_function)</code>

Menggunakan GroupBy dengan lambda Ungkapan

Sintaks yang lebih mudah melibatkan penggunaan ungkapan lambda:

<code class="python">df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x))</code>

Ungkapan lambda ini melakukan operasi penggabungan yang sama seperti fungsi tersuai.

Menggabungkan Kumpulan

Kadangkala, mungkin berguna untuk menggabungkan maklumat daripada berbilang kumpulan menjadi satu Siri. Berikut ialah contoh:

<code class="python">def f(group):
    return Series(dict(A=group['A'].sum(),
                       B=group['B'].sum(),
                       C="{%s}" % ', '.join(group['C'])))</code>

Fungsi ini mengagregatkan lajur 'A' dan 'B' menggunakan sum() dan menggabungkan lajur 'C' ke dalam satu set.

<code class="python">df.groupby('A').apply(f)</code>

Ini pendekatan menghasilkan DataFrame dengan nilai agregat untuk setiap kumpulan.

Dengan menggunakan kaedah ini, anda boleh mengekstrak gabungan rentetan secara berkesan daripada Pandas DataFrames berkumpulan, membuka kunci keupayaan untuk menganalisis dan menggambarkan data berasaskan teks dengan cara yang bermakna .

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Kesatuan Rentetan dengan Cekap daripada 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