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
DDDasal
2024-12-09 15:49:14872semak imbas

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)

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

col
A    Cat-Tiger
B     Ball-Bat

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')

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

  col  new
0   A  Cat-Tiger
1   B  Ball-Bat

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()

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

col
A    Cat-Tiger
B     Ball-Bat
Name: val

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:
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