สมมติว่าคุณมี DataFrame และต้องการใช้ฟังก์ชันแบบ table-wise (ทำงานกับทั้ง DataFrame) ผ่าน pipe()
วิธีแก้ปัญหา
- สร้าง DataFrame
- สร้างฟังก์ชันที่รับ DataFrame และอาร์กิวเมนต์เพิ่มเติม คืนค่า DataFrame ที่ผ่านการประมวลผล
- ใช้
df.pipe(func, arg)เรียกใช้ฟังก์ชัน
ตัวอย่างโค้ด
import pandas as pd
df = pd.DataFrame({'Id': [1, 2, 3, 4, 5], 'Mark': [80, 90, 70, 85, 90]})
print("DataFrame ต้นฉบับ:\n", df)
# ฟังก์ชันที่รับ DataFrame และค่า b คืนค่า (df + b/2)
def avg(a, b):
return (a + b / 2)
print("\nผลลัพธ์จาก pipe():")
print(df.pipe(avg, 10))
ผลลัพธ์
DataFrame ต้นฉบับ:
Id Mark
0 1 80
1 2 90
2 3 70
3 4 85
4 5 90
ผลลัพธ์จาก pipe():
Id Mark
0 6.0 85.0
1 7.0 95.0
2 8.0 75.0
3 9.0 90.0
4 10.0 95.0
คำอธิบาย:
pipe()ใช้สำหรับ method chaining ส่ง DataFrame ผ่านฟังก์ชันต่างๆ- ฟังก์ชัน
avg(a, b)รับaเป็น DataFrame (ส่งผ่านโดยอัตโนมัติ) และb=10เป็นอาร์กิวเมนต์เพิ่มเติม - การคำนวณ
a + b/2ทำงานแบบ element-wise กับทุกค่าใน DataFrame - Id: 1+5=6, 2+5=7, ... | Mark: 80+5=85, 90+5=95, ...