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

Patricia Arquette
Lepaskan: 2024-10-25 05:48:29
asal
988 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!