【问题标题】:How to do always necessary pre processing / cleaning with intake?如何始终对进气进行必要的预处理/清洁?
【发布时间】:2020-08-13 03:34:28
【问题描述】:

我有一个用例:

  • 我总是需要对数据应用预处理步骤才能使用它。 (因为命名等不遵循某些软件在处理链中进一步执行的社区约定。)

  • 我无法更改原始数据。 (因为它可能在我无法控制的仓库中,或者因为它太大而无法复制,......)

如果我的目标是为用户提供以预处理方式获取数据的最简单、最透明的方式,我可以看到两种方法:

1。加载未处理的数据并立即应用预处理:

import intake
from my_tools import pre_process

cat = intake.open_catalog('...')
raw_df = cat.some_data.read()
df = pre_process(raw_df)

2。通过.read() 调用应用预处理步骤。

目录:

sources:
  some_data:
    args:
      urlpath: "/path/to/some_raw_data.csv"
    description: "Some data (already preprocessed)"
    driver: csv
    preprocess: my_tools.pre_process

还有:

import intake

cat = intake.open_catalog('...')
df = cat.some_data.read()

【问题讨论】:

    标签: intake


    【解决方案1】:

    选项 2. 目前在 Intake 中是不可能的; Intake 被设计为“负载”而不是“过程”,因此我们暂时避免了管道的想法,但我们可能会在未来再次使用它。

    但是,您在 Intake 中有几个选项可以与上面的选项 1 一起考虑:

    • 制作您自己的驱动程序,它完全按照您的喜好实现加载和任何处理。编写驱动程序非常容易,并且可能涉及任意代码/复杂性
    • 编写一个 alias 类型的驱动程序,该驱动程序获取同一目录中条目的输出并对其进行处理。有关指针,请参阅 docscode

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2023-03-03
      • 2017-07-08
      • 2017-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多