Cara membatalkan pivot dataframe pandas (dengan contoh)


Di panda, Anda dapat menggunakan fungsimelt () untuk membatalkan pivot DataFrame – mengonversinya dari format lebar ke format panjang .

Fungsi ini menggunakan sintaks dasar berikut:

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

Emas:

  • id_vars : Kolom yang akan digunakan sebagai pengidentifikasi
  • value_vars : Kolom yang akan dilepas porosnya

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: membatalkan pivot pada Pandas DataFrame

Misalkan kita memiliki panda DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
                   ' points ': [18, 22, 19, 14, 14],
                   ' assists ': [5, 7, 7, 9, 12],
                   ' rebounds ': [11, 8, 10, 6, 6]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6

Kita dapat menggunakan sintaks berikut untuk “melepaskan” DataFrame:

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

#view updated DataFrame
print (df_unpivot)

   team variable value
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6

Kami menggunakan kolom tim sebagai kolom pengidentifikasi dan memilih untuk tidak merotasi kolom poin, assist , dan rebound .

Hasilnya adalah DataFrame format panjang.

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

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

#view updated DataFrame
print (df_unpivot)

   team metric amount
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6

Perhatikan bahwa kolom baru sekarang diberi judul Metric dan Amount .

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 *