Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambah Lajur Baharu dengan Penjumlahan Berkumpulan dalam Panda Menggunakan `transform()`?
Apabila cuba mencipta lajur baharu berdasarkan penjumlahan nilai dikumpulkan mengikut tarikh menggunakan panda' groupby(), keputusan NaN ditemui. Objektifnya adalah untuk menambah lajur yang memaparkan jumlah jumlah nilai tertentu untuk semua tarikh, tanpa mengira bilangan baris yang dikaitkan dengan tarikh tersebut.
Untuk mencapai ini, transformasi () fungsi digunakan. Tidak seperti fungsi apply(), yang mengendalikan baris demi baris, transform() melakukan pengiraan pada data terkumpul dan mengembalikan siri yang sejajar dengan kerangka data asal.
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Berikut ialah pecahan langkah demi langkah :
Pertimbangkan rangka data berikut:
Date Sym Data2 Data3 0 2015-05-08 aapl 11 5 1 2015-05-07 aapl 8 8 2 2015-05-06 aapl 10 6 3 2015-05-05 aapl 15 1 4 2015-05-08 aaww 110 50 5 2015-05-07 aaww 60 100 6 2015-05-06 aaww 100 60 7 2015-05-05 aaww 40 120
Menggunakan fungsi transform():
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Hasil dalam:
Date Sym Data2 Data3 Data4 0 2015-05-08 aapl 11 5 55 1 2015-05-07 aapl 8 8 108 2 2015-05-06 aapl 10 6 66 3 2015-05-05 aapl 15 1 121 4 2015-05-08 aaww 110 50 55 5 2015-05-07 aaww 60 100 108 6 2015-05-06 aaww 100 60 66 7 2015-05-05 aaww 40 120 121
Seperti yang terbukti daripada output, Lajur 'Data4' kini memegang jumlah 'Data3' untuk setiap nilai 'Tarikh' unik.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur Baharu dengan Penjumlahan Berkumpulan dalam Panda Menggunakan `transform()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!