Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Fungsi Pandas\' `melt` Membentuk Semula DataFrame dengan Lajur Kumpulan dan Nama Tambahan?

Bagaimanakah Fungsi Pandas\' `melt` Membentuk Semula DataFrame dengan Lajur Kumpulan dan Nama Tambahan?

DDD
Lepaskan: 2024-11-28 00:04:11
asal
1090 orang telah melayarinya

How Can Pandas' `melt` Function Reshape a DataFrame with Additional Group and Name Columns?

Fungsi Pandas Melt: Alat Pembentuk Semula

Masalah

Pertimbangkan DataFrame df dan kamus d. Anda bertujuan untuk membentuk semula df menjadi jadual dengan lajur tambahan, iaitu Kumpulan dan Nama. Output yang diingini sepatutnya menyerupai:

    Group   Name  Year  Value
 0      A    Amy  2013      2
 1      A    Amy  2014      9
 2      B    Bob  2013      4
 3      B    Bob  2014      2
 4      B    Ben  2013      1
 5      B    Ben  2014      5
 6      C   Carl  2013      7
 7      C   Carl  2014      4
 8      C  Chris  2013      8
 9      C  Chris  2014      5
10  Other         2013      3
11  Other         2014      6
Salin selepas log masuk

Penyelesaian

Untuk mencapai bentuk semula ini, kami akan menggunakan fungsi lelehan Pandas.

m = pd.melt(df, id_vars=['Year'], var_name='Name')
Salin selepas log masuk

Ini akan mencipta DataFrame cair m dengan lajur Tahun, Nama dan nilai. Untuk menambah lajur Kumpulan, kami membentuk semula d seperti berikut:

d2 = {}
for k, v in d.items():
  for item in v:
    d2[item] = k
Salin selepas log masuk

Kami kemudian memetakan d2 kepada m['Nama'] untuk mengisi lajur Kumpulan.

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

Akhir sekali, kami alihkan nilai 'Lain' dari Nama ke Kumpulan:

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

DataFrame m yang terhasil akan sepadan dengan yang dikehendaki keluaran.

Atas ialah kandungan terperinci Bagaimanakah Fungsi Pandas\' `melt` Membentuk Semula DataFrame dengan Lajur Kumpulan dan Nama Tambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan