跳转到主要内容

为您的 favorite dataframe 库提供的 Haystack 自定义组件。

项目描述

Dataframes Haystack

PyPI - Version PyPI - Python Version PyPI - License

Code style: black Ruff

GH Actions Tests pre-commit.ci status


📃 描述

dataframes-haystack 是一个为 Haystack 2 提供的扩展,它允许与 dataframe 库集成。

当前支持的数据框架库包括

该库提供各种自定义 转换器 组件,可以将数据框架转换为 Haystack Document 对象

  • FileToPandasDataFrameFileToPolarsDataFrame 读取文件并将它们转换为数据框架。
  • PandasDataFrameConverterPolarsDataFrameConverter 将数据框架中存储的数据转换为 Haystack Document 对象。

🛠️ 安装

# for pandas (pandas is already included in `haystack-ai`)
pip install dataframes-haystack

# for polars
pip install "dataframes-haystack[polars]"

💻 使用

[!TIP] 请参阅 示例笔记本 以获取完整示例。

Pandas

FileToPandasDataFrame

from dataframes_haystack.components.converters.pandas import FileToPandasDataFrame

converter = FileToPandasDataFrame(file_format="csv")

output_dataframe = converter.run(
    file_paths=["data/doc1.csv", "data/doc2.csv"]
)

结果

>>> output_dataframe
{'dataframe': <pandas.DataFrame>}

PandasDataFrameConverter

import pandas as pd

from dataframes_haystack.components.converters.pandas import PandasDataFrameConverter

df = pd.DataFrame({
    "text": ["Hello world", "Hello everyone"],
    "filename": ["doc1.txt", "doc2.txt"],
})

converter = PandasDataFrameConverter(content_column="text", meta_columns=["filename"])
documents = converter.run(df)

结果

>>> documents
{'documents': [
    Document(id=0, content: 'Hello world', meta: {'filename': 'doc1.txt'}),
    Document(id=1, content: 'Hello everyone', meta: {'filename': 'doc2.txt'})
]}

Polars

FileToPolarsDataFrame

from dataframes_haystack.components.converters.polars import FileToPolarsDataFrame

converter = FileToPolarsDataFrame(file_format="csv")

output_dataframe = converter.run(
    file_paths=["data/doc1.csv", "data/doc2.csv"]
)

结果

>>> output_dataframe
{'dataframe': <polars.DataFrame>}

PolarsDataFrameConverter

import polars as pl

from dataframes_haystack.components.converters.polars import PolarsDataFrameConverter

df = pl.DataFrame({
    "text": ["Hello world", "Hello everyone"],
    "filename": ["doc1.txt", "doc2.txt"],
})

converter = PolarsDataFrameConverter(content_column="text", meta_columns=["filename"])
documents = converter.run(df)

结果

>>> documents
{'documents': [
    Document(id=0, content: 'Hello world', meta: {'filename': 'doc1.txt'}),
    Document(id=1, content: 'Hello everyone', meta: {'filename': 'doc2.txt'})
]}

🤝 贡献

您有关于新功能的想法吗?您是否发现了需要修复的错误?

请随意 打开问题 或提交 PR!

设置开发环境

需求: hatchpre-commit

  1. 克隆仓库
  2. 运行 hatch shell 创建并激活虚拟环境
  3. 运行 pre-commit install 安装 pre-commit 钩子。这将强制执行代码检查和格式化。

运行测试

  • 代码检查和格式化: hatch run lint:fmt
  • 单元测试: hatch run test-cov-all

✍️ 许可证

dataframes-haystack 根据 MIT 许可证分发。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定该选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

dataframes_haystack-0.0.2.tar.gz (117.9 kB 查看哈希值)

上传时间 源代码

构建分发

dataframes_haystack-0.0.2-py3-none-any.whl (9.7 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面