Собрать запрос DuckDB в два кадра данных?Python

Программы на Python
Ответить
Anonymous
 Собрать запрос DuckDB в два кадра данных?

Сообщение Anonymous »

Предположим, у меня есть CSV-файл с

Код: Выделить всё

date,value
2020-01-01,1
2020-01-02,4
2020-01-03,5
2020-01-04,9
2020-01-05,2
Я хотел бы прочитать его с помощью DuckDB, выполнить некоторую предварительную обработку и в конечном итоге получить набор поездов и проверок в виде фреймов данных Polars.
Я мог бы сделать:

Код: Выделить всё

train = duckdb.sql("""
select *, avg(value) over (order by date rows between 2 preceding and current row)
from read_csv(my_data.csv) qualify date < make_date(2020,1,4)
""").pl()
val = duckdb.sql("""
select *, avg(value) over (order by date rows between 2 preceding and current row)
from read_csv(my_data.csv) qualify date >= make_date(2020,1,4)
""").pl()
и это работает, но не приводит ли это к риску двойных вычислений?
Есть ли способ материализовать два кадра данных одновременно без двойных вычислений? Или мне просто следует сделать

Код: Выделить всё

data = duckdb.sql('select *, avg(value) over (order by date rows between 2 preceding and current row) from read_csv(my_data.csv)').pl()
train = data.filter(pl.col('date') < date(2020, 1, 4))
val = data.filter(pl.col('date') >= date(2020, 1, 4))
?


Подробнее здесь: https://stackoverflow.com/questions/790 ... dataframes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»