Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Meratakan Kumpulan PandasBy MultiIndex DataFrame?
Menukar Output Pandas GroupBy MultiIndex Kembali ke DataFrame
Apabila melakukan operasi groupby pada panda DataFrame dengan berbilang lajur indeks, terhasil objek ialah DataFrame dengan indeks hierarki. Ini boleh menyusahkan jika anda ingin mengakses data sebagai baris individu.
Berikut ialah contoh mudah:
df1 = pd.DataFrame({"City": ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"], "Name": ["Alice", "Bob", "Mallory", "Mallory", "Bob", "Mallory"]}) g1 = df1.groupby(["Name", "City"]).count()
Output g1 ialah DataFrame dengan indeks hierarki:
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
Untuk menukar ini kembali kepada DataFrame dengan baris individu, anda boleh menggunakan sama ada kaedah add_suffix dan reset_index:
g1.add_suffix("_Count").reset_index()
Ini akan menambah akhiran pada lajur indeks dan menetapkan semula indeks untuk mencipta DataFrame rata:
Name City City_Count Name_Count 0 Alice Seattle 1 1 1 Bob Seattle 2 2 2 Mallory Portland 2 2 3 Mallory Seattle 1 1
Atau, anda boleh menggunakan kaedah saiz dan reset_index untuk mengira bilangan baris dalam setiap kumpulan dan mencipta yang baharu DataFrame:
DataFrame({'count': df1.groupby(["Name", "City"]).size()}).reset_index()
Ini akan mencipta DataFrame dengan satu lajur indeks:
Name City count 0 Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 3 Mallory Seattle 1
Pendekatan yang anda gunakan akan bergantung pada keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimana untuk Meratakan Kumpulan PandasBy MultiIndex DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!