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!