Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Kejadian Istilah dengan Cekap dalam Kumpulan dalam Pandas DataFrame?
Mengumpulkan Mengikut Kiraan Penggal dalam Bingkai Data Pandas
Masalah:
Diberikan bingkai data dengan lajur berikut: id, kumpulan dan istilah. Matlamatnya adalah untuk menentukan bilangan kejadian setiap istilah dalam setiap gabungan unik id dan kumpulan.
Penyelesaian:
Untuk mengelak daripada menggunakan gelung, gunakan groupby dan fungsi saiz dalam Panda:
df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
Fungsi kumpulan mengikut mengumpulkan bingkai data mengikut lajur yang ditentukan (id, kumpulan dan jangka), manakala fungsi saiz mengira kejadian setiap gabungan. Fungsi nyahtindan menghasilkan jadual yang lebih menarik secara visual dengan kiraan disusun dalam matriks.
Hasilnya ialah jadual dengan lajur berbilang indeks di mana dua peringkat pertama mewakili gabungan id dan kumpulan, dan tahap ketiga bersesuaian dengan istilah. Setiap sel dalam jadual menunjukkan bilangan kali istilah tertentu muncul untuk id dan kumpulan yang sepadan.
Masa:
Untuk set data yang besar (cth., 1,000,000 baris) , prestasinya sangat baik:
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000)))
Menggunakan pendekatan yang disebutkan di atas, yang telah berlalu masa adalah lebih kurang 1 saat.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kejadian Istilah dengan Cekap dalam Kumpulan dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!