Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah anda cekap mengubah data lebar kepada format panjang dalam Pandas?

Bagaimanakah anda cekap mengubah data lebar kepada format panjang dalam Pandas?

Mary-Kate Olsen
Lepaskan: 2024-11-12 02:41:02
asal
347 orang telah melayarinya

How do you efficiently transform wide data to a long format in Pandas?

Membentuk Semula Data Luas kepada Panjang dalam Panda

Banyak tugas manipulasi data memerlukan set data dalam format tertentu, sering dirujuk sebagai panjang atau data yang luas. Dalam panda, pembentukan semula dari lebar ke panjang boleh dicapai melalui fungsi pd.melt atau DataFrame.melt.

Data Asal:

Pertimbangkan rangka data lebar berikut, di mana tarikh ialah indeks dan lajur mewakili berbeza pembolehubah:

         AA  BB  CC
date
05/03     1   2   3
06/03     4   5   6
07/03     7   8   9
08/03     5   7   1
Salin selepas log masuk

Membentuk Semula kepada Panjang:

Untuk membentuk semula bingkai data ini ke dalam format panjang, di mana setiap baris mewakili satu tarikh dan gabungan pembolehubah, kita boleh menggunakan :

df = df.reset_index().melt(id_vars='date')
Salin selepas log masuk

Ini mengubah kerangka data ke dalam:

     date variable  value
0   05/03       AA      1
1   06/03       AA      4
2   07/03       AA      7
3   08/03       AA      5
4   05/03       BB      2
5   06/03       BB      5
6   07/03       BB      8
7   08/03       BB      7
8   05/03       CC      3
9   06/03       CC      6
10  07/03       CC      9
11  08/03       CC      1
Salin selepas log masuk

Sebagai alternatif, langkah reset_index boleh diabaikan dengan menyatakan ignore_index=False dalam fungsi cair:

dfm = df.melt(ignore_index=False)
Salin selepas log masuk

Ini memastikan bahawa indeks baris disimpan dalam rangka data yang diubah.

Atas ialah kandungan terperinci Bagaimanakah anda cekap mengubah data lebar kepada format panjang dalam Pandas?. 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