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!