Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Perbezaan Berkumpulan dalam Panda dengan Pelbagai Medan?

Bagaimana untuk Mengira Perbezaan Berkumpulan dalam Panda dengan Pelbagai Medan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 06:05:31539semak imbas

How to Calculate Grouped Differences in Pandas with Multiple Fields?

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!

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