Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggunakan Pandas Groupby untuk Menyertai Nilai dengan Pembatas?

Bagaimanakah Saya Boleh Menggunakan Pandas Groupby untuk Menyertai Nilai dengan Pembatas?

DDD
Lepaskan: 2024-12-09 15:49:14
asal
840 orang telah melayarinya

How Can I Use Pandas Groupby to Join Values with a Delimiter?

Pandas Groupby with Delimiter Join

Menggunakan pustaka Pandas, anda boleh mengumpulkan baris dengan berbilang nilai menggunakan fungsi groupby. Walau bagaimanapun, secara lalai, nilai digabungkan tanpa pembatas. Artikel ini menangani isu memperkenalkan pembatas untuk memisahkan nilai dalam setiap kumpulan.

Anda pada mulanya cuba menggunakan fungsi apply() untuk menggabungkan nilai dengan sempang (-), tetapi ini mengakibatkan keseluruhan rentetan digabungkan dan bukannya memisahkan nilai individu.

Pendekatan yang lebih mudah ialah menggunakan fungsi agg() dengan parameter gabungan. Begini cara anda boleh mencapai output yang diingini:

group = df.groupby('col')['val'].agg('-'.join)
Salin selepas log masuk

Ini akan bergabung dengan nilai dalam setiap kumpulan menggunakan sempang sebagai pembatas. Hasilnya ialah:

col
A    Cat-Tiger
B     Ball-Bat
Salin selepas log masuk

Perhatikan bahawa indeks masih ada dalam output, jika anda ingin menukarnya kepada lajur, anda boleh menggunakan fungsi reset_index():

df1 = group.reset_index(name='new')
Salin selepas log masuk

Ini akan menukar indeks kepada lajur baharu yang dinamakan baharu. Output akhir ialah:

  col  new
0   A  Cat-Tiger
1   B  Ball-Bat
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan fungsi squeeze() (perhatikan fungsi ini telah dibuat sebagai_nunique fungsi dalam Pandas 1.4.0) untuk mengalih keluar indeks sepenuhnya dan mendapatkan objek Siri:

group.squeeze()
Salin selepas log masuk

Ini akan menghasilkan Siri dengan nilai terkumpul yang disertai oleh yang ditentukan pembatas:

col
A    Cat-Tiger
B     Ball-Bat
Name: val
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pandas Groupby untuk Menyertai Nilai dengan Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan