Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengira Peratusan Jumlah Jualan setiap Pejabat Menggunakan Pandas Groupby?

Bagaimana untuk Mengira Peratusan Jumlah Jualan setiap Pejabat Menggunakan Pandas Groupby?

Linda Hamilton
Lepaskan: 2024-12-12 19:19:14
asal
221 orang telah melayarinya

How to Calculate the Percentage of Total Sales per Office Using Pandas Groupby?

Mengira Peratusan Jumlah Jualan dengan Pandas Groupby

Untuk mengira peratusan jumlah jualan bagi setiap pejabat dalam keadaan tertentu, anda boleh memanfaatkan kuasa transformatif Pandas' kumpulan mengikut operasi. Mari kita selami butirannya.

Pertimbangkan fail CSV dengan tiga lajur: negeri, office_id dan jualan. Untuk mengumpulkan data mengikut negeri dan office_id serta meringkaskan jualan, anda boleh menggunakan df.groupby(['state', 'office_id']).agg({'sales': 'sum'}).

df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
                   'office_id': list(range(1, 7)) * 2,
                   'sales': [np.random.randint(100000, 999999)
                             for _ in range(12)]})

df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
Salin selepas log masuk

Operasi ini menghasilkan DataFrame berkumpulan di mana jumlah jualan dikira untuk setiap gabungan unik (negeri, office_id).

Untuk menentukan peratusan jumlah jualan bagi setiap pejabat, anda boleh melaksanakan strategi berikut:

Pendekatan Transformasi

Memperkenalkan kuasa transformatif transformasi! Gunakannya pada lajur jualan dan bahagikan dengan jumlah jualan dalam setiap negeri.

df['sales'] / df.groupby('state')['sales'].transform('sum')
Salin selepas log masuk

Transformasi ini menghasilkan DataFrame dengan peratusan, menyenaraikan pecahan jualan setiap pejabat berbanding jumlah jualan dalam negeri masing-masing .

Pendekatan Berbilang Kumpulan

Sebagai alternatif, anda boleh membuat objek dikumpulkan berdasarkan lajur jualan dalam setiap kumpulan (negeri, office_id). Kemudian, bahagikan dengan jumlah lajur yang baru dikumpulkan.

state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))
Salin selepas log masuk

Pendekatan ini memberikan anda DataFrame yang serupa dengan nilai peratusan, tetapi ia memerlukan tahap pengumpulan tambahan.

Kedua-dua kaedah dengan berkesan kira peratusan sumbangan setiap pejabat kepada jumlah jualan dalam negeri masing-masing. Dengan memahami teknik ini, anda boleh membuka kunci cerapan baharu daripada data terkumpul anda!

Atas ialah kandungan terperinci Bagaimana untuk Mengira Peratusan Jumlah Jualan setiap Pejabat Menggunakan Pandas Groupby?. 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