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
Lepaskan: 2024-12-04 22:28:14
asal
898 orang telah melayarinya

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
Salin selepas log masuk

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))
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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')
Salin selepas log masuk

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan