Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Áp dụng hàm pipe table-wise trên DataFrame Python

Giả sử bạn muốn áp dụng một hàm tùy chỉnh lên toàn bộ DataFrame (table-wise) bằng phương thức pipe().

Giải pháp

  • Tạo DataFrame.
  • Định nghĩa hàm avg(a, b) nhận DataFrame và một tham số thêm.
  • Gọi df.pipe(avg, 10) để truyền DataFrame làm đối số đầu tiên cho avg.

Mã ví dụ

import pandas as pd

df = pd.DataFrame({'Id': [1,2,3,4,5], 'Mark': [80,90,70,85,90]})
print("DataFrame gốc:\n", df)

def avg(a, b):
    # a là DataFrame, b là số 10
    return (a + b / 2)

print("\nKết quả df.pipe(avg, 10):")
print(df.pipe(avg, 10))

Kết quả

DataFrame gốc:
   Id  Mark
0   1    80
1   2    90
2   3    70
3   4    85
4   5    90

Kết quả df.pipe(avg, 10):
      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

Giải thích:

  • pipe(func, *args, **kwargs) gọi func(df, *args, **kwargs).
  • Hàm avg(a, b) nhận a=df, b=10.
  • Phép tính (a + b/2) thực hiện broadcast: mỗi ô cộng thêm 5 (10/2).
  • pipe hữu ích cho chuỗi xử lý (method chaining) và truyền DataFrame vào hàm ngoài.