Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi Lebur Pandas Boleh Membentuk Semula Bingkai Data Luas menjadi Format Panjang yang Diingini dengan Lajur Tambahan?

Bagaimanakah Fungsi Lebur Pandas Boleh Membentuk Semula Bingkai Data Luas menjadi Format Panjang yang Diingini dengan Lajur Tambahan?

Barbara Streisand
Barbara Streisandasal
2024-12-08 08:40:12928semak imbas

How Can Pandas' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?

Fungsi Lebur Pandas untuk Transformasi Data

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!

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