Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Mencairkan dan Mencairkan Bingkai Data Panda untuk Manipulasi Data?

Bagaimanakah Saya Mencairkan dan Mencairkan Bingkai Data Panda untuk Manipulasi Data?

Susan Sarandon
Susan Sarandonasal
2024-12-25 21:19:14210semak imbas

How Do I Melt and Unmelt Pandas DataFrames for Data Manipulation?

Bagaimanakah Saya Mencairkan Pandas DataFrame?

Pernyataan Masalah:

Mencairkan Pandas DataFrame melibatkan pemindahan data daripada format yang luas kepada format yang panjang . Ini berguna apabila memanipulasi data untuk analisis, visualisasi atau tujuan lain. Mari kita mendalami pelbagai senario lebur dengan masalah sampel dan penyelesaiannya yang sepadan:

Masalah 1: Transposing to Long Format

Soalan: Bagaimanakah cara saya mencairkan DataFrame supaya format berikut ialah dicapai?

    Name  Age  Subject Grade
0    Bob   13  English     C
1   John   16  English     B
2    Foo   16  English     B
3    Bar   15  English    A+
4   Alex   17  English     F
5    Tom   12  English     A
6    Bob   13     Math    A+
7   John   16     Math     B
8    Foo   16     Math     A
9    Bar   15     Math     F
10  Alex   17     Math     D
11   Tom   12     Math     C

Penyelesaian:

Untuk mencairkan DataFrame, gunakan df.melt(). Tentukan id_vars (lajur kekal dalam bentuk asal) dan var_name dan value_name untuk nama lajur baharu:

pd.melt(df, id_vars=['Name', 'Age'], var_name='Subject', value_name='Grade')

Masalah 2: Menapis Lajur Semasa Mencair

Soalan: Bagaimanakah cara saya mencairkan DataFrame daripada Masalah 1 dan menapis 'Bahasa Inggeris' lajur?

Penyelesaian:

Gunakan value_vars dalam df.melt() untuk menentukan lajur yang hendak dicairkan. Dalam kes ini, hanya ['Math'] dipilih:

pd.melt(df, id_vars=['Name', 'Age'], value_vars='Math', var_name='Subject', value_name='Grade')

Masalah 3: Menyusun dan Mengumpulkan Data Lebur

Soalan: Bagaimanakah cara mengisih yang cair data daripada Masalah 1 mengikut skor dan kumpulan pelajar mengikut nama?

Penyelesaian:

Gunakan .groupby() dan .agg() pada DataFrame cair untuk dikumpulkan mengikut 'Gred' dan gabungkan nama dan subjek menjadi koma -rentetan yang dipisahkan:

melted_df.groupby('Grade', as_index=False).agg(", ".join)

Masalah 4: Menyahcairkan Lebur DataFrame

Soalan: Bagaimanakah cara saya mencairkan DataFrame yang telah cair?

Penyelesaian:

Gunakan DataFrame. pivot_table() untuk mencairkan DataFrame. Nyatakan nilai, indeks dan lajur.

melted_df.pivot_table('Grades', ['Name', 'Age'], 'Subject', aggfunc='first').reset_index().droplevel(level=0, axis=1)

Masalah 5: Pengumpulan Mengikut Nama dan Mengasingkan Lajur

Soalan: Bagaimanakah cara saya mengumpulkan DataFrame mengikut nama dan asingkan mata pelajaran dan gred dengan koma?

Penyelesaian:

Cairkan DataFrame dan gunakan .groupby() dan .agg() untuk menggabungkan mata pelajaran dan gred:

pd.melt(df, id_vars=['Name'], var_name='Subject', value_name='Grade').groupby('Name', as_index=False).agg(", ".join)

Masalah 6: Mencairkan Semua Lajur sebagai Nilai

Soalan: Bagaimanakah cara saya mencairkan semua lajur dalam DataFrame?

Penyelesaian:

Gunakan df.stack( ).reset_index() untuk menukarkan DataFrame:

pd.melt(df, id_vars=None, var_name='Column', value_name='Value')

Penyelesaian ini menunjukkan kepelbagaian panda yang meleleh dan tidak mencairkan DataFrames untuk memanipulasi data untuk pelbagai tujuan.

Atas ialah kandungan terperinci Bagaimanakah Saya Mencairkan dan Mencairkan Bingkai Data Panda untuk Manipulasi Data?. 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