Peratusan Jumlah dengan Groupby dalam Pandas
Mengira peratusan jualan yang disumbangkan oleh setiap pejabat dalam sesebuah negeri memerlukan pendekatan bernuansa dalam Pandas. Walaupun hanya mengumpulkan mengikut 'negeri' dan 'id_pejabat' memberikan anda jumlah jualan untuk setiap pejabat, ia tidak memberikan peratusan sumbangan dalam negeri.
Untuk mencapai matlamat ini, anda perlu membuat kumpulan mengikut terlebih dahulu objek berdasarkan 'negeri' dan 'id_pejabat'. Ini akan memberi anda bingkai data dengan lajur jualan yang mengandungi jumlah jualan bagi setiap gabungan negeri pejabat:
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
Untuk mengira peratusan, anda boleh membahagikan jualan setiap pejabat dengan jumlah jualan bagi negeri tersebut. Walau bagaimanapun, untuk mengakses jumlah jualan bagi setiap negeri dalam groupby, anda perlu mencipta objek groupby kedua berdasarkan 'state':
state_total = df.groupby('state').agg({'sales': 'sum'})
Menggunakan objek ini, anda boleh meningkatkan 'state_office' groupby dengan lajur baharu yang mengandungi peratusan jualan untuk setiap gabungan negeri pejabat:
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(state_total.loc[x.name]))
Perhatikan bahawa parameter 'level=0' dalam 'groupby' merujuk kepada bahagian atas tahap indeks berbilang peringkat yang dibentuk oleh kumpulan asal mengikut 'negeri' dan 'id_pejabat'.
Pendekatan ini memastikan peratusan jualan setiap pejabat dikira dengan merujuk jumlah jualan dalam negeri masing-masing.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Peratusan Jualan setiap Pejabat dalam Setiap Negeri menggunakan Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!