Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python ใช้ฟังก์ชัน pipe() แบบ table-wise บน DataFrame

สมมติว่าคุณมี DataFrame และต้องการใช้ฟังก์ชันแบบ table-wise (ทำงานกับทั้ง DataFrame) ผ่าน pipe()

วิธีแก้ปัญหา

  1. สร้าง DataFrame
  2. สร้างฟังก์ชันที่รับ DataFrame และอาร์กิวเมนต์เพิ่มเติม คืนค่า DataFrame ที่ผ่านการประมวลผล
  3. ใช้ 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, ...