Peratusan Jumlah Panda dengan Groupby
Mengira peratusan jualan setiap pejabat di negeri tertentu boleh dilakukan menggunakan kumpulan Pandas. Walau bagaimanapun, ia memerlukan langkah tambahan untuk mencapai hasil yang diingini.
Andaikan kami mempunyai fail CSV dengan lajur yang mewakili Negeri, ID Pejabat dan Jualan. Kami boleh mengimport Panda dan mencipta DataFrame:
import pandas as pd 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)]})
Untuk mengira jumlah jualan bagi setiap pejabat dan negeri, kami boleh mengumpulkan mengikut lajur tersebut:
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
Untuk mengira peratusan jualan setiap pejabat di negeri tertentu, kita boleh mengumpulkan mengikut negeri dan menggunakan fungsi yang membahagikan jualan setiap pejabat dengan jumlah negeri jualan:
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(x.sum()))
Ini menghasilkan DataFrame dengan peratusan jualan untuk setiap pejabat:
print(state_pcts) sales state office_id AZ 2 16.981365 4 19.250033 6 63.768601 CA 1 19.331879 3 33.858747 5 46.809373 CO 1 36.851857 3 19.874290 5 43.273852 WA 2 34.707233 4 35.511259 6 29.781508
Kaedah ini secara berkesan mengira peratusan jualan setiap pejabat dalam keadaan tertentu dengan " menjangkau" ke peringkat negeri kumpulan dengan menjumlahkan jualan untuk seluruh negeri.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Peratusan Jualan setiap Pejabat dalam Setiap Negeri Menggunakan Pandas Groupby?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!