Dalam bekerja dengan set data, selalunya perlu untuk mengira perbezaan atau perubahan antara nilai dari semasa ke semasa atau merentas kategori yang berbeza. Dalam Panda, anda boleh melakukan pengiraan ini dengan cekap dengan menggunakan fungsi groupby() dan diff().
Dalam senario yang diberikan, anda mempunyai DataFrame dengan data pada pelbagai tapak web dan markahnya di negara yang berbeza. Matlamat anda ialah untuk menentukan perbezaan skor 1/3/5 hari bagi setiap gabungan negara tapak.
Untuk bermula, isih DataFrame anda mengikut tapak, negara dan lajur tarikh. Isih memastikan titik data yang serupa dikumpulkan bersama, menjadikannya lebih mudah untuk mengira perbezaan.
<code class="python">df = df.sort_values(by=['site', 'country', 'date'])</code>
Seterusnya, gunakan fungsi groupby() untuk mengumpulkan data mengikut tapak dan negara.
<code class="python">grouped = df.groupby(['site', 'country'])</code>
Dengan data yang dikumpulkan, anda kini boleh mengira perbezaan skor menggunakan fungsi diff(). Fungsi ini mengira perbezaan antara baris berturut-turut dalam kumpulan.
<code class="python">df['diff'] = grouped['score'].diff().fillna(0)</code>
Fungsi diff() mengisi nilai yang tiada dengan 0 secara lalai, memastikan set data yang konsisten dan lengkap.
DataFrame yang terhasil akan mengandungi data asal bersama-sama dengan skor yang dikira perbezaan:
date site country score diff 8 2018-01-01 fb es 100 0.0 9 2018-01-02 fb gb 100 0.0 5 2018-01-01 fb us 50 0.0 6 2018-01-02 fb us 55 5.0 7 2018-01-03 fb us 100 45.0 1 2018-01-01 google ch 50 0.0 4 2018-01-02 google ch 10 -40.0 0 2018-01-01 google us 100 0.0 2 2018-01-02 google us 70 -30.0 3 2018-01-03 google us 60 -10.0
DataFrame ini menyediakan perbezaan skor 1/3/5 hari yang diingini untuk setiap gabungan tapak/negara.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Skor untuk Berbilang Laman Web dan Negara dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!