Bagaimanakah Saya Boleh Menggabungkan Rentetan dalam Kumpulan Pandas untuk Nilai Unik?

Susan Sarandon
Lepaskan: 2024-10-25 00:27:02
asal
293 orang telah melayarinya

How Can I Combine Strings Within Pandas Groupby for Unique Values?

Cara Mendapatkan Kesatuan Rentetan Menggunakan Pandas Groupby

Apabila mengumpulkan data menggunakan kaedah kumpulan Pandas, lajur berangka boleh diagregatkan dengan mudah menggunakan berfungsi seperti jumlah. Walau bagaimanapun, mengagregatkan lajur rentetan menimbulkan cabaran, kerana penyatuan mudah tidak selalu diingini. Artikel ini meneroka kaedah untuk mendapatkan kesatuan rentetan dalam kumpulan.

Masalah:

Pertimbangkan DataFrame berikut:

A B C
1 0.749065 This
2 0.301084 is
3 0.463468 a
4 0.643961 random
1 0.866521 string
2 0.120737 !

Memohon df. groupby("A")["B"].sum() mengembalikan jumlah nilai berangka dalam lajur B untuk setiap kumpulan. Walau bagaimanapun, memanggil df.groupby("A")["C"].sum() pada lajur rentetan C tidak berfungsi seperti yang diharapkan, mengakibatkan gabungan rentetan.

Penyelesaian:

Fungsi Tersuai:

Satu pendekatan ialah mentakrifkan fungsi tersuai yang mengagregatkan nilai rentetan dalam kumpulan. Fungsi ini kemudiannya boleh digunakan pada DataFrame menggunakan kaedah apply(). Contohnya:

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

df.groupby('A').apply(f)</code>
Salin selepas log masuk

Ini akan mengembalikan DataFrame dengan gabungan rentetan dalam lajur C untuk setiap kumpulan, di mana rentetan itu terkandung dalam pendakap kerinting.

Lambda dengan . sum():

Kaedah lain ialah menggunakan fungsi lambda pada objek kumpulan, menggunakan .sum() untuk lajur berangka dan gabungan tersuai untuk lajur rentetan:

<code class="python">df.groupby('A').apply(lambda x: x.sum())</code>
Salin selepas log masuk

Ini akan mengembalikan DataFrame yang merangkumi jumlah nilai berangka dan rentetan bercantum. Untuk mendapatkan penyatuan rentetan, anda boleh menggunakan manipulasi rentetan dalam fungsi lambda.

Pertimbangan Prestasi:

Adalah penting untuk ambil perhatian bahawa menggunakan fungsi tersuai pada kumpulan mengikut objek lebih perlahan daripada menggunakan fungsi pengagregatan pada lajur berangka. Untuk set data yang besar, pertukaran prestasi ini harus dipertimbangkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Rentetan dalam Kumpulan Pandas untuk Nilai Unik?. 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!