Panda Groupby Pelbagai Medan untuk Perbezaan Berasaskan Masa
Dalam bidang analisis data, membandingkan perubahan mengikut masa adalah tugas yang penting. Pandas, perpustakaan Python serba boleh, menawarkan keupayaan yang mantap untuk mengendalikan operasi sedemikian. Apabila berurusan dengan data yang disusun mengikut medan dan masa berbilang kategori, kaedah groupby.diff() terbukti tidak ternilai.
Pertimbangkan DataFrame seperti yang disediakan, di mana setiap tapak mempunyai skor yang berbeza-beza merentas negara dan tarikh. Matlamatnya adalah untuk mengira perbezaan 1/3/5 hari dalam markah bagi setiap gabungan tapak/negara.
Penyelesaian Masalah
Untuk mencapai matlamat ini, kami menggunakan langkah berikut:
<code class="python">df = df.sort_values(by=['site', 'country', 'date']) df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)</code>
Output:
Hasilnya ialah DataFrame yang mempamerkan perbezaan skor yang dikira:
date | site | country | score | diff |
---|---|---|---|---|
2018-01-01 | fb | es | 100 | 0.0 |
2018-01-02 | fb | gb | 100 | 0.0 |
2018-01-01 | fb | us | 50 | 0.0 |
2018-01-02 | fb | us | 55 | 5.0 |
2018-01-03 | fb | us | 100 | 45.0 |
2018-01-01 | ch | 50 | 0.0 | |
2018-01-02 | ch | 10 | -40.0 | |
2018-01-01 | us | 100 | 0.0 | |
2018-01-02 | us | 70 | -30.0 | |
2018-01-03 | us | 60 | -10.0 |
Isih Terperinci
Dalam kes di mana pesanan sewenang-wenangnya diperlukan, seperti mengutamakan "google" daripada "fb", lajur kategori boleh dibuat dan ditetapkan sebagai parameter pengisihan. Ini memastikan pesanan yang ditentukan dikekalkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Berasaskan Masa dalam Pandas DataFrames Menggunakan Groupby dan diff()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!