У меня есть сценарий использования, где:
Мне всегда нужно применить шаг предварительной обработки данных, прежде чем я смогу его использовать. (Поскольку именование и т. Д. c. Не следуют соглашениям сообщества, применяемым некоторыми программами, далее по цепочке обработки.)
Я не могу изменить необработанные данные. (Потому что он может быть в репо, который я не контролирую, или потому что он слишком большой, чтобы его дублировать, ...)
Если я хочу предоставить пользователю самый простой и самый Прозрачный способ получения данных предварительно обработанным способом, я вижу два способа сделать это:
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()