Menyertai Nilai Berkumpulan dengan Pembatas dalam Panda
Apabila menggunakan fungsi kumpulan mengikut untuk mengumpulkan data dengan berbilang nilai, adalah perkara biasa untuk menghadapi isu untuk menggabungkan nilai-nilai ini tanpa pembatas. Untuk menyelesaikan masalah ini, anda boleh memanfaatkan kaedah agg.
Pertimbangkan DataFrame berikut:
col | val -----|----- A | Cat A | Tiger B | Ball B | Bat
Untuk mengumpulkan baris ini berdasarkan lajur kol dan menggabungkan nilai dalam lajur val, gunakan kod berikut:
import pandas as pd df = pd.DataFrame({'col': ['A', 'A', 'B', 'B'], 'val': ['Cat', 'Tiger', 'Ball', 'Bat']}) grouped = df.groupby('col')['val'].agg('-'.join)
Pendekatan ini harus menghasilkan yang diingini hasil:
col | val -----|----- A | Cat-Tiger B | Ball-Bat
Walau bagaimanapun, jika kaedah guna digunakan sebagai alternatif, ia boleh membawa kepada hasil yang tidak dijangka dengan nilai sempang berlaku beberapa kali, seperti yang dilihat di bawah:
df.groupby('col')['val'].apply(lambda x: '-'.join(x)) col | val -----|----- A | C-a-t-T-i-g-e-r B | B-a-l-l-B-a-t
Untuk mengelakkan isu ini, gunakan kaedah agg, seperti yang ditunjukkan dalam contoh di atas.
Selain itu, untuk menukar indeks terkumpul atau MultiIndex ke lajur biasa, anda boleh menggunakan kaedah reset_index:
df1 = grouped.reset_index(name='new')
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Nilai Berkumpulan dengan Cekap dalam Panda dengan Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!