Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Meratakan Kumpulan PandasBy MultiIndex DataFrame?

Bagaimana untuk Meratakan Kumpulan PandasBy MultiIndex DataFrame?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 00:01:09327semak imbas

How to Flatten a Pandas GroupBy 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!

Kenyataan:
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