Logo Zephyrnet

Sử dụng Pandas AI để phân tích dữ liệu – KDnuggets

Ngày:

Bạn có thành thạo lĩnh vực dữ liệu bằng Python không? Nếu vậy, tôi cá là hầu hết các bạn đều sử dụng Pandas để thao tác dữ liệu.

Nếu bạn không biết, Gấu trúc là gói Python nguồn mở được phát triển đặc biệt để phân tích và thao tác dữ liệu. Đây là một trong những gói được sử dụng nhiều nhất và là gói bạn thường học khi bắt đầu hành trình khoa học dữ liệu bằng Python.

Vậy Pandas AI là gì? Tôi đoán bạn đang đọc bài viết này vì bạn muốn biết về nó.

Như bạn đã biết, chúng ta đang ở thời đại mà Generative AI có mặt ở khắp mọi nơi. Hãy tưởng tượng nếu bạn có thể thực hiện phân tích dữ liệu trên dữ liệu của mình bằng Generative AI; mọi chuyện sẽ dễ dàng hơn nhiều.

Đây là những gì Pandas AI mang lại. Với những lời nhắc đơn giản, chúng ta có thể nhanh chóng phân tích và thao tác với tập dữ liệu của mình mà không cần gửi dữ liệu đi đâu đó.

Bài viết này sẽ khám phá cách sử dụng Pandas AI cho các nhiệm vụ Phân tích dữ liệu. Trong bài viết chúng ta sẽ tìm hiểu những nội dung sau:

  • Thiết lập AI của gấu trúc
  • Khám phá dữ liệu với Pandas AI
  • Trực quan hóa dữ liệu với Pandas AI
  • Pandas AI Cách sử dụng nâng cao

Nếu bạn đã sẵn sàng học thì hãy bắt tay vào học thôi!

AI gấu trúc là gói Python triển khai khả năng Mô hình ngôn ngữ lớn (LLM) vào API Pandas. Chúng ta có thể sử dụng API Pandas tiêu chuẩn với cải tiến Generative AI để biến Pandas thành một công cụ đàm thoại.

Chúng tôi chủ yếu muốn sử dụng Pandas AI vì quy trình đơn giản mà gói cung cấp. Gói này có thể tự động phân tích dữ liệu bằng một dấu nhắc đơn giản mà không yêu cầu mã phức tạp.

Giới thiệu đủ rồi. Hãy bắt tay vào thực hiện.

Đầu tiên, chúng ta cần cài đặt gói trước mọi thứ khác.

pip install pandasai

 

Tiếp theo, chúng ta phải thiết lập LLM mà chúng ta muốn sử dụng cho Pandas AI. Có một số tùy chọn, chẳng hạn như OpenAI GPT và HuggingFace. Tuy nhiên, chúng tôi sẽ sử dụng OpenAI GPT cho hướng dẫn này.

Việc thiết lập mô hình OpenAI thành Pandas AI rất đơn giản, nhưng bạn sẽ cần Khóa API OpenAI. Nếu bạn không có, bạn có thể truy cập vào trang mạng

Nếu mọi thứ đã sẵn sàng, hãy thiết lập Pandas AI LLM bằng mã bên dưới.

from pandasai.llm import OpenAI

llm = OpenAI(api_token="Your OpenAI API Key")

 

Bây giờ bạn đã sẵn sàng thực hiện Phân tích dữ liệu với Pandas AI.

Khám phá dữ liệu với Pandas AI

Hãy bắt đầu với một tập dữ liệu mẫu và thử khám phá dữ liệu bằng Pandas AI. Tôi sẽ sử dụng dữ liệu Titanic từ gói Seaborn trong ví dụ này.

import seaborn as sns
from pandasai import SmartDataframe

data = sns.load_dataset('titanic')
df = SmartDataframe(data, config = {'llm': llm})

 

Chúng ta cần chuyển chúng vào đối tượng Khung dữ liệu thông minh Pandas AI để khởi tạo Pandas AI. Sau đó, chúng tôi có thể thực hiện hoạt động trò chuyện trên DataFrame của mình.

Hãy thử một câu hỏi đơn giản.

response = df.chat("""Return the survived class in percentage""")

response

 

Tỷ lệ hành khách sống sót là: 38.38%

Từ lời nhắc, Pandas AI có thể đưa ra giải pháp và trả lời các câu hỏi của chúng tôi. 

Chúng ta có thể đặt các câu hỏi về Pandas AI để cung cấp câu trả lời trong đối tượng DataFrame. Ví dụ: đây là một số lời nhắc để phân tích dữ liệu.

#Data Summary
summary = df.chat("""Can you get me the statistical summary of the dataset""")

#Class percentage
surv_pclass_perc = df.chat("""Return the survived in percentage breakdown by pclass""")

#Missing Data
missing_data_perc = df.chat("""Return the missing data percentage for the columns""")

#Outlier Data
outlier_fare_data = response = df.chat("""Please provide me the data rows that
contains outlier data based on fare column""")

 

Sử dụng Pandas AI để phân tích dữ liệu
Hình ảnh của Tác giả
 

Bạn có thể thấy từ hình ảnh trên rằng Pandas AI có thể cung cấp thông tin với đối tượng DataFrame, ngay cả khi lời nhắc khá phức tạp.

Tuy nhiên, Pandas AI không thể xử lý phép tính quá phức tạp vì các gói bị giới hạn ở LLM mà chúng tôi chuyển trên đối tượng SmartDataFrame. Trong tương lai, tôi chắc chắn rằng Pandas AI có thể xử lý các phân tích chi tiết hơn nhiều khi khả năng LLM ngày càng phát triển.

Trực quan hóa dữ liệu với Pandas AI

Pandas AI rất hữu ích cho việc khám phá dữ liệu và có thể thực hiện trực quan hóa dữ liệu. Miễn là chúng tôi chỉ định lời nhắc, Pandas AI sẽ cung cấp kết quả trực quan hóa.

Hãy thử một ví dụ đơn giản.

response = df.chat('Please provide me the fare data distribution visualization')

response

 

Sử dụng Pandas AI để phân tích dữ liệu
Hình ảnh của Tác giả
 

Trong ví dụ trên, chúng tôi yêu cầu Pandas AI trực quan hóa việc phân bổ cột Giá vé. Đầu ra là phân phối Biểu đồ thanh từ tập dữ liệu.

Giống như Khám phá dữ liệu, bạn có thể thực hiện bất kỳ loại trực quan hóa dữ liệu nào. Tuy nhiên, Pandas AI vẫn không thể xử lý các quy trình trực quan hóa phức tạp hơn.

Dưới đây là một số ví dụ khác về Trực quan hóa dữ liệu với Pandas AI.

kde_plot = df.chat("""Please plot the kde distribution of age column and separate them with survived column""")

box_plot = df.chat("""Return me the box plot visualization of the age column separated by sex""")

heat_map = df.chat("""Give me heat map plot to visualize the numerical columns correlation""")

count_plot = df.chat("""Visualize the categorical column sex and survived""")

 

Sử dụng Pandas AI để phân tích dữ liệu
Hình ảnh của Tác giả
 

Cốt truyện trông đẹp và gọn gàng. Bạn có thể tiếp tục hỏi Pandas AI để biết thêm chi tiết nếu cần.

Pandas AI nâng cao cách sử dụng

Chúng tôi có thể sử dụng một số API tích hợp từ Pandas AI để cải thiện trải nghiệm Pandas AI.

Xóa bộ nhớ cache

Theo mặc định, tất cả lời nhắc và kết quả từ đối tượng Pandas AI được lưu trữ trong thư mục cục bộ để giảm thời gian xử lý và giảm thời gian Pandas AI cần gọi mô hình. 

Tuy nhiên, bộ nhớ đệm này đôi khi có thể làm cho kết quả của Pandas AI không liên quan khi họ xem xét kết quả trong quá khứ. Đó là lý do tại sao nên xóa bộ nhớ đệm. Bạn có thể xóa chúng bằng đoạn mã sau.

import pandasai as pai
pai.clear_cache()

 

Bạn cũng có thể tắt bộ đệm ngay từ đầu.

df = SmartDataframe(data, {"enable_cache": False})

 

Bằng cách này, không có lời nhắc hoặc kết quả nào được lưu trữ ngay từ đầu.

Đầu tùy chỉnh

Có thể chuyển DataFrame đầu mẫu cho Pandas AI. Sẽ rất hữu ích nếu bạn không muốn chia sẻ một số dữ liệu riêng tư với LLM hoặc chỉ muốn cung cấp một ví dụ cho Pandas AI.

Để làm điều đó, bạn có thể sử dụng đoạn mã sau.

from pandasai import SmartDataframe
import pandas as pd

# head df
head_df = data.sample(5)

df = SmartDataframe(data, config={
    "custom_head": head_df,
    'llm': llm
})

Kỹ năng và đại lý của Pandas AI

Pandas AI cho phép người dùng chuyển một hàm mẫu và thực thi nó bằng quyết định của Tác nhân. Ví dụ: hàm bên dưới kết hợp hai DataFrame khác nhau và chúng tôi chuyển một hàm vẽ sơ đồ mẫu để tác nhân Pandas AI thực thi.

import pandas as pd
from pandasai import Agent
from pandasai.skills import skill

employees_data = {
    "EmployeeID": [1, 2, 3, 4, 5],
    "Name": ["John", "Emma", "Liam", "Olivia", "William"],
    "Department": ["HR", "Sales", "IT", "Marketing", "Finance"],
}

salaries_data = {
    "EmployeeID": [1, 2, 3, 4, 5],
    "Salary": [5000, 6000, 4500, 7000, 5500],
}

employees_df = pd.DataFrame(employees_data)
salaries_df = pd.DataFrame(salaries_data)

# Function doc string to give more context to the model for use of this skill
@skill
def plot_salaries(names: list[str], salaries: list[int]):
    """
    Displays the bar chart  having name on x-axis and salaries on y-axis
    Args:
        names (list[str]): Employees' names
        salaries (list[int]): Salaries
    """
    # plot bars
    import matplotlib.pyplot as plt

    plt.bar(names, salaries)
    plt.xlabel("Employee Name")
    plt.ylabel("Salary")
    plt.title("Employee Salaries")
    plt.xticks(rotation=45)

    # Adding count above for each bar
    for i, salary in enumerate(salaries):
        plt.text(i, salary + 1000, str(salary), ha='center', va='bottom')
    plt.show()


agent = Agent([employees_df, salaries_df], config = {'llm': llm})
agent.add_skills(plot_salaries)

response = agent.chat("Plot the employee salaries against names")

 

Đặc vụ sẽ quyết định xem họ có nên sử dụng chức năng mà chúng tôi đã chỉ định cho Pandas AI hay không. 

Việc kết hợp Kỹ năng và Tác nhân mang lại cho bạn kết quả dễ kiểm soát hơn cho phân tích DataFrame của bạn.

Chúng tôi đã biết cách sử dụng Pandas AI để giúp hoạt động phân tích dữ liệu của chúng tôi dễ dàng như thế nào. Sử dụng sức mạnh của LLM, chúng tôi có thể giới hạn phần mã hóa của công việc phân tích dữ liệu và thay vào đó tập trung vào những công việc quan trọng.

Trong bài viết này, chúng ta đã tìm hiểu cách thiết lập Pandas AI, thực hiện khám phá và trực quan hóa dữ liệu với Pandas AI cũng như nâng cao cách sử dụng. Bạn có thể làm được nhiều hơn với gói này, vì vậy hãy truy cập tài liệu hướng dẫn để học hỏi thêm.
 
 

Cornellius Yudha Wijaya là trợ lý quản lý khoa học dữ liệu và người viết dữ liệu. Khi làm việc toàn thời gian tại Allianz Indonesia, anh ấy thích chia sẻ các mẹo về Python và dữ liệu qua mạng xã hội và phương tiện viết lách. Cornellius viết về nhiều chủ đề về AI và học máy.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img