Membentuk Semula Data Lebar kepada Format Panjang dalam Panda
Dalam bidang manipulasi data, membentuk semula data daripada format lebar ke panjang sering timbul sebagai keperluan. Pertimbangkan rangka data panda berikut:
AA | BB | CC | |
---|---|---|---|
05/03 | 1 | 2 | 3 |
06/03 | 4 | 5 | 6 |
07/03 | 7 | 8 | 9 |
08/03 | 5 | 7 | 1 |
Untuk mengubahnya menjadi format panjang yang diingini:
| AA | 05/03 | 1 |
| AA | 06/03 | 4 |
| AA | 07/03 | 7 |
| AA | 08/03 | 5 |
| BB | 05/03 | 2 |
| BB | 06/03 | 5 |
| BB | 07/03 | 8 |
| BB | 08/03 | 7 |
| CC | 05/03 | 3 |
| CC | 06/03 | 6 |
| CC | 07/03 | 9 |
| CC | 08/03 | 1 |
Kami menggunakan fungsi pandas.melt atau pandas.DataFrame.melt, yang secara elegan mengubah data lebar kepada format panjang.
import pandas as pd df = pd.DataFrame({ 'date' : ['05/03', '06/03', '07/03', '08/03'], 'AA' : [1, 4, 7, 5], 'BB' : [2, 5, 8, 7], 'CC' : [3, 6, 9, 1] }).set_index('date') df = df.reset_index() pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])
Sebagai alternatif, seseorang boleh meninggalkan langkah reset_index dengan memanggil cair dengan ignore_index=False:
dfm = df.melt(ignore_index=False).reset_index()
Menghasilkan panjang yang diingini format:
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 |
Transformasi ini membolehkan penggabungan yang cekap dengan bingkai data lain berdasarkan tarikh dan nama lajur dikongsi.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data Lebar kepada Format Panjang dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!