Method stack()
Secara sederhana method stack akan melakukan pivoting kolom menjadi index. Untuk lebih mari kita load library dan data yang digunakan.
Data yang digunakan melanjutan dari modul sebelumnya dengan modifikasi penambahan kolom baru “Price in IDR”.
import pandas as pd
df = pd.read_csv("bigmac.csv", parse_dates=["Date"])
df["Price in IDR"] = df["Price in US Dollars"] * 14500
df.head()
Ketika method stack dilakukan, Pandas akan melakukan pivot kolom Price in US Dollars dan Price in IDR menjadi index axis.
df.stack()
Date Country
2016-01-01 Argentina Price in US Dollars 2.39
Price in IDR 34655.00
Australia Price in US Dollars 3.74
Price in IDR 54230.00
Brazil Price in US Dollars 3.35
...
2010-01-01 Ukraine Price in IDR 26535.00
United States Price in US Dollars 3.58
Price in IDR 51910.00
Uruguay Price in US Dollars 3.32
Price in IDR 48140.00
Length: 1304, dtype: float64
Method stack akan mengembalikan series. Jika ingin ditampilkan dalam bentuk dataframe, gunakan method to_frame().
df.stack().to_frame()
Method unstack()
Sesuai dengan namanya, berfungsi mengembalikan index menjadi kolom.
s = df.stack() s.unstack()
Anda bisa melakukan unstacking dengan memberikan parameter dari level index. Kembali ke posisi pertama kali dilakukan stack.
- Date adalah level 0
- Country adalah level 1
- Price ini US dan IDR adalah level 2.
Date Country
2016-01-01 Argentina Price in US Dollars 2.39
Price in IDR 34655.00
Australia Price in US Dollars 3.74
Price in IDR 54230.00
Brazil Price in US Dollars 3.35
...
2010-01-01 Ukraine Price in IDR 26535.00
United States Price in US Dollars 3.58
Price in IDR 51910.00
Uruguay Price in US Dollars 3.32
Price in IDR 48140.00
Length: 1304, dtype: float64
Jika Anda melakukan perintah unstack() akan sama efeknya dengan unstack(2). Silakan bereksperimen dengan mengubah parameter level.
Jika index memiliki label kolom, Anda bisa gunakan dalam perintah unstack(). contoh:
s.unstack("Country")
s.unstack("Date")