วันนี้ไปเจอเทคนิคในการยุบ field รวมกัน ให้เหลือ field เดียวครับ จาก 2 fields ที่มีค่าบ้างไม่มีบ้าง เช่น
import numpy as np
df = pd.DataFrame({
"foodstuff": ["apple-martini", "apple-pie", np.nan, np.nan, np.nan],
"type": [np.nan, np.nan, "strawberry-tart", "dessert", np.nan]
})
เราสามารถสั่งบรรทัดเดียวเลยได้ตามนี้
df.rename(columns={"type": "foodstuff"}).stack().unstack()
โค้ดด้านบนทำอะไร?
สิ่งที่โค้ดด้านบนทำก็คือ rename ชื่อ field type ก่อนให้เป็น foodstuff เสร็จแล้วก็สั่ง stack เพื่อดึงเอา column ให้มาเป็นแถว และจากแถวให้ไปเป็น column ซึ่งตรงนี้จะเสมือนกับว่าเราได้กำจัดแถวที่มันเป็น Null หรือ NaN ทิ้งออกไปแล้ว
ถ้าเราลองสั่งแค่ stack จะได้ผลตามนี้
df.rename(columns={"type": "foodstuff"}).stack().

ซึ่งพอเราสั่ง unstack มันก็จะดึงแถวกลับไปเป็น column เสมือนกับว่าเรายุบ 2 fields นี้เข้าไปด้วยกัน
เอาเทคนิคนี้มาจาก
งดงามมากครับ ![]()

