Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Mencairkan dan Memanipulasi Pandas DataFrames Menggunakan Fungsi `melt()`?

Bagaimanakah Saya Mencairkan dan Memanipulasi Pandas DataFrames Menggunakan Fungsi `melt()`?

Susan Sarandon
Susan Sarandonasal
2024-12-17 07:14:24604semak imbas

How Do I Melt and Manipulate Pandas DataFrames Using the `melt()` Function?

Bagaimanakah cara saya mencairkan bingkai data panda?

Mencairkan bingkai data panda melibatkan penukaran daripada format lebar dengan berbilang lajur kepada format panjang dengan dua lajur utama: 'pembolehubah' dan 'nilai'. Ini boleh dicapai menggunakan fungsi melt().

Masalah 1: Mencairkan bingkai data untuk menukar lajur ke dalam baris

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

Ini akan menukar bingkai data asal kepada format yang diingini, dengan lajur untuk 'Nama', 'Umur', 'Subjek' dan 'Gred'. Lajur 'Subjek' akan mengandungi pengepala lajur asal, manakala 'Gred' akan mengandungi nilai yang sepadan.

Masalah 2: Menapis data cair untuk memasukkan lajur tertentu

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
filtered_df = df[df['Subject'] == 'Math']

Dengan menapis bingkai data yang cair, anda boleh mengalih keluar lajur yang tidak diingini. Dalam kes ini, hanya baris dengan 'Subjek' ditetapkan kepada 'Matematik' dikekalkan.

Masalah 3: Mengumpulkan data cair dan menyusun mengikut markah

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
sorted_df = df.groupby('value').agg({'Name': ', '.join, 'Subject': ', '.join})
sorted_df = sorted_df.sort_values('value')

Ini menggabungkan baris dengan nilai pendua dalam lajur 'nilai', menyebabkan lajur 'Nama' dan 'Subjek' menjadi agregat dengan nilai dipisahkan koma. Hasilnya kemudian diisih untuk menyusun gred secara menaik.

Masalah 4: Menyahcairkan bingkai data cair

unmelted_df = df.pivot(index=['Name', 'Age'], columns='Subject', values='Grades')

Untuk menukar semula bingkai data cair kepada format asalnya, anda boleh menggunakan fungsi pivot(). Ini akan mengumpulkan data mengikut lajur 'Nama' dan 'Umur' dan memutar lajur 'Subjek' untuk mencipta bentuk kerangka data asal.

Masalah 5: Mengumpulkan data cair dan menggabungkan subjek dan gred

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
grouped_df = df.groupby('Name').agg({'Subject': ', '.join, 'Grades': ', '.join})

Sama seperti Masalah 3, ini mengumpulkan bingkai data cair mengikut 'Nama' dan menggabungkan lajur 'Subjek' dan 'Gred' menggunakan koma. Hasilnya ialah bingkai data dengan satu baris bagi setiap orang, menyenaraikan subjek dan gred mereka.

Masalah 6: Mencairkan bingkai data dengan semua lajur sebagai nilai

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

Kepada cairkan kerangka data dengan semua lajur sebagai nilai, tinggalkan hujah id_vars daripada fungsi melt(). Ini akan membuat bingkai data di mana lajur 'Lajur' menyenaraikan pengepala lajur asal dan lajur 'Nilai' mengandungi nilai yang sepadan.

Atas ialah kandungan terperinci Bagaimanakah Saya Mencairkan dan Memanipulasi Pandas DataFrames Menggunakan Fungsi `melt()`?. 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