Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menghimpunkan Nilai Berturut-turut dalam Pandas DataFrame?

Bagaimana untuk Menghimpunkan Nilai Berturut-turut dalam Pandas DataFrame?

DDD
Lepaskan: 2024-11-30 06:47:10
asal
255 orang telah melayarinya

How to Group Consecutive Values in a Pandas DataFrame?

Mengumpulkan Nilai Berturut-turut dalam Pandas DataFrame

Dalam analisis data, kita sering menghadapi situasi di mana data disusun dan terdapat keperluan untuk mengumpulkan secara berturut-turut nilai bersama. Tugas ini boleh dicapai dalam panda menggunakan teknik pengumpulan tersuai.

Andaikan kami mempunyai DataFrame dengan lajur bernama 'a' yang mengandungi nilai berikut:

[1, 1, -1, 1, -1, -1]
Salin selepas log masuk

Matlamat kami adalah untuk mengumpulkan ini nilai ke dalam blok berturut-turut, seperti:

[1,1] [-1] [1] [-1, -1]
Salin selepas log masuk

Untuk mencapai ini, kita boleh menggunakan yang berikut langkah:

  1. Buat Siri tersuai: Kami mencipta Siri baharu menggunakan fungsi ne dan shift. Siri ini mengembalikan nilai Boolean yang menunjukkan sama ada nilai semasa berbeza daripada nilai sebelumnya.
  2. Gunakan Siri untuk mengumpulkan: Kami menghantar Siri tersuai kepada fungsi kumpulan mengikut. Ini mengumpulkan data mengikut blok berturut-turut.
  3. Lelaran ke atas data terkumpul: Kami mengulangi data terkumpul dan mencetak indeks, DataFrame terkumpul dan senarai nilai dalam lajur 'a' untuk setiap kumpulan.

Berikut ialah kod yang melaksanakan ini langkah:

import pandas as pd

df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]})
print(df)

custom_series = df['a'].ne(df['a'].shift()).cumsum()
print(custom_series)

for i, g in df.groupby(custom_series):
    print(i)
    print(g)
    print(g.a.tolist())
Salin selepas log masuk

Ini menghasilkan kumpulan yang diingini:

1
   a
0  1
1  1
[1, 1]
2
   a
2 -1
[-1]
3
   a
3  1
[1]
4
   a
4 -1
5 -1
[-1, -1]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Nilai Berturut-turut dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan