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
Lepaskan: 2024-12-25 21:19:14
asal
210 orang telah melayarinya

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
Salin selepas log masuk

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')
Salin selepas log masuk

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')
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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')
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan