Apabila berhadapan dengan tugas penstrukturan semula data yang kompleks dalam Pandas, fungsi cair muncul sebagai alat yang berkuasa. Ia dengan lancar mengubah bingkai data daripada format lebar dengan berbilang lajur kepada format panjang dengan lajur yang lebih sedikit.
Dalam senario praktikal, pertimbangkan bingkai data yang memerlukan pembentukan semula:
df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
Amy Bob Carl Chris Ben Other Year 0 2 4 7 8 1 3 2013 1 9 2 4 5 5 6 2014
Untuk mengubah ini bingkai data ke dalam format yang lebih berstruktur, anda boleh menggunakan fungsi lebur:
m = pd.melt(df, id_vars=['Year'], var_name='Name')
Operasi ini menjana bingkai data berikut:
Year Name value 0 2013 Amy 2 1 2014 Amy 9 2 2013 Bob 4 3 2014 Bob 2 4 2013 Carl 7 ...
Walau bagaimanapun, output yang diingini termasuk lajur tambahan bernama "Kumpulan." Untuk mendapatkan ini, bentuk semula kamus:
d2 = {} for k, v in d.items(): for item in v: d2[item] = k
Bingkai data kini boleh dikemas kini dengan lajur "Kumpulan":
m['Group'] = m['Name'].map(d2)
Akhir sekali, alihkan 'Lain' daripada 'Nama' lajur ke lajur 'Kumpulan':
mask = m['Name'] == 'Other' m.loc[mask, 'Name'] = '' m.loc[mask, 'Group'] = 'Other'
Bingkai data yang terhasil sejajar dengan sempurna dengan yang dikehendaki output:
Year Name value Group 0 2013 Amy 2 A 1 2014 Amy 9 A 2 2013 Bob 4 B 3 2014 Bob 2 B 4 2013 Carl 7 C ...
Dengan cara ini, fungsi Pandas melt memperkasakan saintis data dengan mekanisme yang serba boleh dan cekap untuk membentuk semula bingkai data, membolehkan mereka mengubah dan menyusun semula data dengan mudah untuk pelbagai tujuan analisis dan visualisasi.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Lebur Pandas Boleh Membentuk Semula Bingkai Data Luas menjadi Format Panjang yang Diingini dengan Lajur Tambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!