Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghimpunkan Nilai Identik Berturut-turut dalam Pandas DataFrame?
Mengumpulkan Nilai Berturut-turut dalam Pandas DataFrame
Dalam panda, mengumpulkan data boleh menjadi tugas penting untuk analisis dan manipulasi data. Apabila berurusan dengan data berjujukan, selalunya menjadi perlu untuk mengumpulkan nilai berturut-turut yang berkongsi ciri yang sama.
Masalah:
Diberikan DataFrame dengan lajur yang mengandungi nilai berturut-turut, kumpulkan nilai ini ke dalam segmen bersebelahan yang mana nilainya kekal sama.
Sebagai contoh, jika lajur asal mengandungi nilai berikut:
[1, 1, -1, 1, -1, -1]
Output yang dikehendaki ialah:
[ 1, 1] [-1] [1] [-1, -1]
Penyelesaian:
Untuk mencapai pengelompokan ini, panda menyediakan pendekatan yang fleksibel menggunakan fungsi kumpulan mengikut. Walau bagaimanapun, hanya menggunakan groupby pada lajur itu sendiri tidak akan mencukupi. Sebaliknya, kita perlu mencipta Siri tersuai yang mengenal pasti sempadan segmen.
Kod berikut menunjukkan cara melaksanakan penyelesaian ini:
df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) # Create a custom Series that identifies segment boundaries boundaries = df['a'].ne(df['a'].shift()).cumsum() # Group data by the segment boundaries for i, g in df.groupby(boundaries): print(i) print(g) print(g.a.tolist())
Pendekatan ini memberikan nombor jujukan kepada segmen berturut-turut di mana nilai kekal tidak berubah. Menggunakan nombor ini, data kemudiannya dikumpulkan dengan sewajarnya, dan setiap kumpulan dicetak bersama dengan nilai berturut-turut yang sepadan.
Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Nilai Identik Berturut-turut dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!