Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggabungkan Nilai dengan Cekap dalam Kumpulan Pandas Mengikut Kumpulan Menggunakan Pembatas?

Bagaimanakah Saya Boleh Menggabungkan Nilai dengan Cekap dalam Kumpulan Pandas Mengikut Kumpulan Menggunakan Pembatas?

Linda Hamilton
Linda Hamiltonasal
2024-12-04 22:28:14901semak imbas

How Can I Efficiently Concatenate Values within Pandas GroupBy Groups Using a Delimiter?

Pandas GroupBy with Delimiter Joiner

Apabila mengumpulkan data dalam Pandas dengan berbilang nilai, seseorang mungkin menghadapi keperluan untuk menggabungkan nilai dalam kumpulan menggunakan pembatas tertentu. Walau bagaimanapun, operasi kumpulan mengikut dan jumlah yang mudah boleh mengakibatkan keluaran yang tidak diingini tanpa pembatas yang diingini.

Pertimbangkan kod berikut:

import pandas as pd

df = pd.read_csv("Inputfile.txt", sep='\t')
group = df.groupby(['col'])['val'].sum()
# Output:
# A CatTiger
# B BallBat

Ini menghasilkan rentetan tunggal dengan nilai yang digabungkan, tanpa pembatas sempang yang dikehendaki.

Untuk mencapai output yang diingini, anda boleh menggunakan fungsi guna dalam kombinasi dengan sertai:

group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))

Walau bagaimanapun, penyelesaian ini mungkin masih tidak menghasilkan output yang diharapkan kerana aksara yang tidak diingini disertakan dalam setiap nilai.

Penyelesaian Alternatif

Sebaliknya, pertimbangkan untuk menggunakan fungsi agg dengan parameter gabungan:

df.groupby('col')['val'].agg('-'.join)

Ini akan betul menggabungkan nilai dalam kumpulan menggunakan pembatas sempang, memberikan output yang diingini:

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object

Mengemas kini Penyelesaian

Untuk mengendalikan lajur MultiIndex atau Indeks, anda boleh menetapkan semula indeks dan namakan semula menggunakan fungsi reset_index:

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')

Ini akan menukar indeks kepada yang baharu lajur bernama 'baharu', menyediakan cara yang mudah untuk bekerja dengan data terkumpul.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Nilai dengan Cekap dalam Kumpulan Pandas Mengikut Kumpulan Menggunakan 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