Pandas: cara menggabungkan baris dengan nilai kolom yang sama
Anda dapat menggunakan sintaks dasar berikut untuk menggabungkan baris dengan nilai kolom yang sama di pandas DataFrame:
#define how to aggregate various fields agg_functions = {' field1 ': ' first ', ' field2 ': ' sum ', ' field ': ' sum '} #create new DataFrame by combining rows with same id values df_new = df. groupby (df[' id ']). aggregate (agg_functions)
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Gabungkan Baris dengan Nilai Kolom yang Sama di Pandas
Misalkan kita memiliki panda DataFrame berikut yang berisi informasi tentang penjualan dan pengembalian yang dilakukan oleh berbagai karyawan suatu perusahaan:
import pandas as pd #create dataFrame df = pd. DataFrame ({' id ': [101, 101, 102, 103, 103, 103], ' employee ': ['Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'], ' sales ': [4, 1, 3, 2, 5, 3], ' returns ': [1, 2, 2, 1, 3, 2]}) #view DataFrame print (df) id employee sales returns 0 101 Dan 4 1 1 101 Dan 1 2 2 102 Rick 3 2 3 103 Ken 2 1 4 103 Ken 5 3 5 103 Ken 3 2
Kita dapat menggunakan sintaks berikut untuk menggabungkan baris yang memiliki nilai yang sama di kolom id dan kemudian menggabungkan kolom yang tersisa:
#define how to aggregate various fields agg_functions = {' employee ': ' first ', ' sales ': ' sum ', ' returns ': ' sum '} #create new DataFrame by combining rows with same id values df_new = df. groupby (df[' id ']). aggregate (agg_functions) #view new DataFrame print (df_new) employee sales returns id 101 Dan 5 3 102 Rick 3 2 103 Ken 10 6
DataFrame baru menggabungkan semua baris dari DataFrame sebelumnya yang memiliki nilai yang sama pada kolom id , kemudian menghitung jumlah nilai pada kolom penjualan dan pengembalian .
Catatan : Lihat dokumentasi pandas untuk daftar lengkap agregasi yang tersedia untuk digunakan dengan fungsi GroupBy() .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: cara mencari selisih antara dua kolom
Pandas: cara mencari perbedaan antara dua garis
Pandas: cara mengurutkan kolom berdasarkan nama