Trăn Pandera là gì?

Giả sử tôi có một. csv theo định dạng này. Tên, Mức lương, Bộ phận, Cướp bắt buộc, 5500, Hàng không, Có Bob, 1000, Cơ sở vật chất, Không Tom, 6000, CNTT, Có Sau khi xuất nội dung này sang pandas/modin, tôi muốn

Đầu ra của DataFrame gấu trúc của bạn có thể không giống như những gì bạn mong đợi do lỗi trong mã của bạn hoặc thay đổi về định dạng dữ liệu. Việc sử dụng dữ liệu khác với những gì bạn mong đợi có thể gây ra lỗi hoặc dẫn đến giảm hiệu suất

 

Vì vậy, điều quan trọng là phải xác thực dữ liệu của bạn trước khi sử dụng. Một công cụ tốt để xác thực DataFrame của gấu trúc là pandera. Pandara rất dễ đọc và sử dụng

 

Bạn cũng có thể sử dụng công cụ trang trí của gấu trúc

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
1để xác thực DataFrame của gấu trúc đầu vào trước khi nhập hàm. Kiểm tra ví dụ trên

Quy trình công việc phân tích và kỹ thuật dữ liệu hiện đại thường sẽ liên quan đến việc sử dụng các thư viện thao tác dữ liệu, trong vũ trụ Python, sẽ là các công cụ như gấu trúc. Một vấn đề mà bạn có thể gặp phải với công cụ thao tác dữ liệu mạnh mẽ này là khung dữ liệu có thể là một đối tượng không rõ ràng khó giải thích về nội dung, kiểu dữ liệu và các thuộc tính khác của nó

Một công cụ có thể giúp bạn giải quyết vấn đề này là pandera, được pyOpenSci chấp nhận như một phần của hệ sinh thái các gói vào tháng 9 năm 2019. Pandera cung cấp bộ công cụ xác thực dữ liệu linh hoạt và biểu cảm giúp người dùng đưa ra các xác nhận thống kê về cấu trúc dữ liệu của gấu trúc

Bộ công cụ xác thực dữ liệu thống kê cho gấu trúc

Để minh họa khả năng của

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
0, hãy sử dụng một ví dụ về đồ chơi nhỏ. Giả sử bạn đang phân tích dữ liệu để biết một số thông tin chi tiết trong ngữ cảnh của một dự án quan trọng, trong đó điều quan trọng là phải đảm bảo chất lượng của các bộ dữ liệu mà bạn đang xem xét

Mỗi hàng trong tập dữ liệu được xác định duy nhất bởi một

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
1 và mỗi cột mô tả các
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
2 và
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
3 của người đó

import pandas as pd

dataset = pd.DataFrame[
    data={
        "height_in_cm": [150, 145, 122, 176, 137, 151],
        "age_category": ["20-30", "10-20", "10-20", "20-30", "10-20", "20-30"],
    },
    index=pd.Series[[100, 101, 102, 103, 104, 105], name="person_id"],
]
print[dataset]

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30

Bạn muốn đảm bảo rằng một số cột có kiểu dữ liệu chính xác hoặc tập dữ liệu đáp ứng các thuộc tính thống kê nhất định. Pandara cho phép bạn xác thực DataFrame để đảm bảo rằng các điều kiện này được đáp ứng. Nó cho phép bạn dành ít thời gian hơn để lo lắng về tính chính xác của dữ liệu của DataFrame để bạn có thể đưa ra các giả định đúng khi phân tích dữ liệu đó

Kiểm tra sự hiện diện và loại cột

Loại lược đồ cơ bản nhất là loại đơn giản kiểm tra xem các cột cụ thể có tồn tại với các kiểu dữ liệu cụ thể không

import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]

Đối tượng

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
4 có thể gọi được, vì vậy bạn có thể xác thực tập dữ liệu bằng cách chuyển nó làm đối số cho lệnh gọi
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
4. Nếu khung dữ liệu vượt qua xác thực lược đồ,
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
4 chỉ cần trả về khung dữ liệu

Nếu không, nó sẽ cung cấp các thông báo lỗi hữu ích

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
0

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
1

Kiểm tra thống kê cơ bản

Nếu bạn muốn đưa ra các khẳng định chặt chẽ hơn về các thuộc tính thực nghiệm của tập dữ liệu, chúng ta có thể cung cấp đối số từ khóa

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
7 cho các hàm tạo và có một hoặc danh sách các
import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
0

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
4

Đối tượng

import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
0 chỉ định cách triển khai chính xác cách xác thực cột hoặc chỉ mục. Đối số vị trí đầu tiên trong hàm tạo của nó có thể gọi được với chữ ký

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
6

Lưu ý rằng ràng buộc duy nhất đối với khả năng gọi được là lấy

import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
3 làm đầu vào và trả về một chuỗi boolean hoặc boolean. Theo thiết kế, kiểm tra có quyền truy cập vào toàn bộ gấu trúc
import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
3 API để đưa ra xác nhận về các thuộc tính của một cột hoặc chỉ mục cụ thể

Thông báo lỗi được lập chỉ mục

Trong trường hợp

import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
0 trả về giá trị boolean
import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
3, các vi phạm lược đồ được báo cáo theo vị trí chỉ mục của các trường hợp lỗi

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
1

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
2

Lỗi được báo cáo dưới dạng một khung dữ liệu được xâu chuỗi trong đó chỉ mục

import pandera as pa

schema = pa.DataFrameSchema[
    columns={
        "height_in_cm": pa.Column[pa.Int],
        "age_category": pa.Column[pa.String],
    },
    index=pa.Index[pa.Int, name="person_id"],
]

schema[dataset]
7 liệt kê các trường hợp của giá trị
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
2 không xác thực được dữ liệu, cột
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
1 là vị trí chỉ mục của trường hợp lỗi và cột
           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
00 hiển thị số lượng trường hợp của một trường hợp lỗi cụ thể

Kiểm tra giả thuyết thống kê

Điều gì sẽ xảy ra nếu chúng ta muốn kiểm tra giả thuyết rằng người lớn tuổi có xu hướng cao hơn?

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
8

Xác thực Pandas Dataframes của bạn ngay hôm nay

Cho dù bạn sử dụng công cụ này trong sổ ghi chép Jupyter, tập lệnh một lần, mã đường ống ETL hay kiểm tra đơn vị, thì

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
0 đều cho phép bạn làm cho mã gấu trúc dễ đọc và mạnh mẽ hơn bằng cách thực thi các thuộc tính xác định và thống kê của cấu trúc dữ liệu gấu trúc trong thời gian chạy

Hy vọng rằng bài đăng này đã mang đến cho bạn hương vị của những gì

           height_in_cm age_category
person_id
100                 150        20-30
101                 145        10-20
102                 122        10-20
103                 176        20-30
104                 137        10-20
105                 151        20-30
0 có thể làm. Nó cung cấp thêm một vài tính năng mà bạn có thể thấy hữu ích

  • Xác thực giản đồ sê-ri
  • Kiểm tra trang trí đầu vào/đầu ra

Cái gì tiếp theo?

Tôi đang tích cực phát triển dự án này và sắp có một số tính năng thú vị, chẳng hạn như kiểm tra tích hợp, hỗ trợ Dask hạng nhất và đặc tả lược đồ yaml. Nếu bạn muốn đóng góp cho dự án này, bạn có thể truy cập repo github

Tại sao lại sử dụng pandera?

pandera cung cấp API linh hoạt và rõ ràng để thực hiện xác thực dữ liệu trên các đối tượng giống như khung dữ liệu để làm cho quy trình xử lý dữ liệu dễ đọc và mạnh mẽ hơn . Khung dữ liệu chứa thông tin mà pandera xác thực rõ ràng khi chạy.

Làm cách nào để sử dụng Python để xác thực dữ liệu?

Yêu cầu hệ thống. .
Bước 1. Nhập mô-đun
Bước 2. Chuẩn bị tập dữ liệu
Bước 3. Xác thực khung dữ liệu
Bước 4. Xử lý các cột phù hợp
Bước 5. Kiểm tra Loại dữ liệu chuyển đổi thành cột Ngày
Bước 6. xác thực dữ liệu để kiểm tra các giá trị còn thiếu

Làm cách nào để xác thực dữ liệu trong gấu trúc Python?

Đối tượng lược đồ có thể gọi được, vì vậy bạn có thể xác thực tập dữ liệu bằng cách chuyển nó vào làm đối số cho lệnh gọi lược đồ. Nếu khung dữ liệu vượt qua xác thực lược đồ, lược đồ chỉ cần trả về khung dữ liệu

Pandas_schema trong Python là gì?

PandasSchema là mô-đun để xác thực dữ liệu được lập bảng, chẳng hạn như CSV [tệp Giá trị được phân tách bằng dấu phẩy] và TSV [tệp Giá trị được phân tách bằng tab] . Nó sử dụng công cụ phân tích dữ liệu cực kỳ mạnh mẽ Pandas để thực hiện việc này một cách nhanh chóng và hiệu quả.

Chủ Đề