Perbezaan Berkumpulan dalam Panda dengan Pelbagai Medan
Dalam situasi ini, kami menyasarkan untuk mengira perbezaan markah untuk gabungan tapak dan negara yang berbeza masa.
Untuk mencapai ini, kami mulakan dengan mengisih kerangka data mengikut tapak, negara dan tarikh:
<code class="python">df = df.sort_values(by=['site', 'country', 'date'])</code>
Seterusnya, kami menggunakan kumpulan mengikut dan perbezaan untuk mengira perbezaan dalam setiap tapak dan kumpulan negara:
<code class="python">df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)</code>
Ini menjana perbezaan dalam setiap tapak dan kumpulan negara dan mengisi sebarang nilai yang hilang dengan 0.
Akhir sekali, kami memaparkan keputusan:
<code class="python">print(df) Output: 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</code>
Sila ambil perhatian bahawa pengisihan mengikut susunan sewenang-wenangnya tidak disokong secara langsung. Untuk senario sedemikian, pertimbangkan untuk menyimpan pesanan anda dalam koleksi dan jadikan lajur anda sebagai kategori. Dengan cara itu, nilai_isih akan sejajar dengan susunan yang disediakan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Berkumpulan dalam Panda dengan Pelbagai Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!