如何对进料进行必要的预处理清洗?

问题描述 投票:0回答:1

我有一个用例,其中。

  • 在使用数据之前,我总是需要对数据进行一个预处理步骤。(因为命名等不遵循处理链更下面的一些软件所执行的社区约定)。

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

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

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

And:

import intake

cat = intake.open_catalog('...')
df = cat.some_data.read()
intake
1个回答
0
投票

选项2.现在在Intake中是不可能的;Intake被设计成 "加载 "而不是 "处理",所以我们暂时避开了管道的想法,但我们将来可能会回到它。

不过,在Intake中,除了上面的方案1.之外,你还有几个选项可以考虑。

  • 制作你自己的驱动,实现你喜欢的加载和处理方式。编写驱动程序非常简单,而且可以涉及到任意的编解码复杂度。
  • 撰写 别名-类型的驱动程序,它接收同一目录中的条目输出并对其进行处理。参见 文件编码 为指针。
© www.soinside.com 2019 - 2024. All rights reserved.