Pandas: cara membentuk ulang dataframe dari lebar ke panjang


Anda dapat menggunakan sintaks dasar berikut untuk mengonversi pandas DataFrame dari format lebar ke format panjang:

 df = pd. melt (df, id_vars=' col1 ', value_vars=[' col2 ', ' col3 ', ...])

Dalam skenario ini, col1 adalah kolom yang kita gunakan sebagai pengidentifikasi dan col2 , col3 , dll. adalah kolom yang porosnya kita batalkan.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Bentuk ulang Pandas DataFrame dari lebar menjadi panjang

Misalkan kita memiliki panda DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                   ' points ': [88, 91, 99, 94],
                   ' assists ': [12, 17, 24, 28],
                   ' rebounds ': [22, 28, 30, 31]})

#view DataFrame
df

	team points assists rebounds
0 A 88 12 22
1 B 91 17 28
2 C 99 24 30
3 D 94 28 31

Kita dapat menggunakan sintaks berikut untuk membentuk ulang DataFrame ini dari format lebar ke format panjang:

 #reshape DataFrame from wide format to long format
df = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '])

#view updated DataFrame
df

	team variable value
0 A points 88
1 B points 91
2 C dots 9 9
3 D dots 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31

DataFrame sekarang dalam format panjang.

Kami menggunakan kolom “tim” sebagai kolom identifikasi dan menghapus kolom “poin”, “bantuan”, dan “pantulan”.

Perhatikan bahwa kita juga dapat menggunakan argumen var_name dan value_name untuk menentukan nama kolom di DataFrame panjang yang baru:

 #reshape DataFrame from wide format to long format
df = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '],
             var_name=' metric ', value_name=' amount ')

#view updated DataFrame
df

	team metric amount
0 A points 88
1 B points 91
2 C points 99
3 D dots 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31

Catatan : Anda dapat menemukan dokumentasi lengkap fungsi pandasmelt() di sini .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya dengan Python:

Bagaimana cara menambahkan baris ke Pandas DataFrame
Bagaimana cara menambahkan kolom ke Pandas DataFrame
Cara menghitung kemunculan nilai tertentu di Pandas DataFrame

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *