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
Lepaskan: 2024-12-08 08:40:12
asal
914 orang telah melayarinya

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'])
Salin selepas log masuk
   Amy  Bob  Carl  Chris  Ben  Other  Year
0    2    4     7      8    1      3  2013
1    9    2     4      5    5      6  2014
Salin selepas log masuk

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

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

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

Bingkai data kini boleh dikemas kini dengan lajur "Kumpulan":

m['Group'] = m['Name'].map(d2)
Salin selepas log masuk

Akhir sekali, alihkan 'Lain' daripada 'Nama' lajur ke lajur 'Kumpulan':

mask = m['Name'] == 'Other'
m.loc[mask, 'Name'] = ''
m.loc[mask, 'Group'] = 'Other'
Salin selepas log masuk

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

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!

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