Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengumpulkan Nilai Berturut-turut dengan Cekap dalam Lajur Bingkai Data Pandas?

Bagaimanakah Saya Boleh Mengumpulkan Nilai Berturut-turut dengan Cekap dalam Lajur Bingkai Data Pandas?

DDD
Lepaskan: 2024-12-05 04:54:08
asal
479 orang telah melayarinya

How Can I Efficiently Group Consecutive Values in a Pandas DataFrame Column?

Mengumpulkan Nilai Berturut-turut dalam Pandas DataFrames

Dalam DataFrame, anda mungkin menghadapi lajur yang mengandungi nilai berturut-turut yang anda perlu kumpulkan bersama. Sebagai contoh, pertimbangkan lajur berikut dengan nilai:

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

Untuk mengumpulkan nilai ini dengan cekap ke dalam kumpulan yang diingini seperti:

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

ikut langkah ini menggunakan pustaka Pandas:

Penyelesaian menggunakan Pengumpulan Siri Tersuai

Anda boleh memanfaatkan Siri tersuai untuk mencapai kumpulan ini. Inilah pendekatannya:

import pandas as pd

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

# Use ne() and cumsum() to create grouping indicator
ind = df['a'].ne(df['a'].shift()).cumsum()

# Group by this indicator
for i, g in df.groupby(ind):
    # Print grouping key
    print(i)
    
    # Print rows in group
    print(g)
    
    # Convert values to list for display
    print(g.a.tolist())
Salin selepas log masuk

Kod ini akan mengeluarkan kumpulan dan nilai 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 Bagaimanakah Saya Boleh Mengumpulkan Nilai Berturut-turut dengan Cekap dalam Lajur Bingkai Data Pandas?. 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