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
Linda Hamiltonasal
2024-12-12 19:19:14222semak imbas

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'})

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')

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()))

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!

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