บทนำ
เมธอด stack() ใน Pandas ใช้ "พับ" คอลัมน์ (columns) ให้กลายเป็นแถว (rows) สร้าง MultiIndex ในแถว เหมาะสำหรับเปลี่ยนข้อมูลจาก wide format เป็น long format
ตัวอย่างพื้นฐาน
import pandas as pd
# DataFrame คอลัมน์เดี่ยว (single-level columns)
df = pd.DataFrame(
[[10, 15], [20, 25], [30, 35], [40, 45]],
index=['w', 'x', 'y', 'z'],
columns=['a', 'b']
)
print("DataFrame ต้นทาง (Wide format):")
print(df)
# Stack: คอลัมน์ a,b กลายเป็นระดับที่ 2 ของ index
stacked = df.stack()
print("\nหลัง stack() (Long format):")
print(stacked)
print(f"\nType: {type(stacked)}") # Series
print(f"Index: {stacked.index.tolist()}")
ผลลัพธ์
DataFrame ต้นทาง (Wide format):
a b
w 10 15
x 20 25
y 30 35
z 40 45
หลัง stack() (Long format):
w a 10
b 15
x a 20
b 25
y a 30
b 35
z a 40
b 45
dtype: int64
พารามิเตอร์สำคัญ
| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
level | ระดับคอลัมน์ที่จะ stack (-1 = ระดับสุดท้าย) | -1 |
dropna | True = ลบ NaN, False = เก็บ NaN | True |