1

私はユースケースを持っています:

  • データを使用する前に、データに前処理ステップを適用する必要があります。(命名などは、処理チェーンのさらに下にある一部のソフトウェアによって強制されるコミュニティの慣習に従わないためです。)

  • 生データを変更できません。(私が制御していないリポジトリにある可能性があるため、または複製するには大きすぎるため...)

前処理された方法でデータを取得する最も簡単で透過的な方法をユーザーに提供することを目的とする場合、これを行う 2 つの方法が考えられます。

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()
4

1 に答える 1

0

オプション 2. は現在 Intake では使用できません。Intake は "処理" ではなく "ロード" するように設計されているため、現時点ではパイプラインのアイデアを避けていますが、将来的にはパイプラインに戻る可能性があります。

ただし、Intake には、上記のオプション 1 と一緒に検討できるオプションがいくつかあります。

  • 独自のドライバーを作成して、ロードと処理を好きなように正確に実装します。ドライバーの作成は非常に簡単ですが、任意のコード/複雑さを伴う可能性があります
  • 同じカタログ内のエントリの出力を取得し、それに何かを行うaliasタイプのドライバを作成します。ポインターについては、ドキュメントコードを参照してください。
于 2020-04-30T16:45:35.183 に答える