Spec-Zone.ru › DuckDB

Реляционная API в Pandas

DuckDB предоставляет реляционную API, которая позволяет объединять операции запросов. Они вычисляются лениво, что позволяет DuckDB оптимизировать их выполнение. Эти операторы могут работать с Pandas DataFrame, таблицами DuckDB или представлениями (которые могут указывать на любой формат хранения, который может читать DuckDB, например, CSV или Parquet файлы и т.д.). Здесь представлен простой пример чтения из Pandas DataFrame и возвращения DataFrame.

import duckdb
import pandas

# connect to an in-memory database
con = duckdb.connect()

input_df = pandas.DataFrame.from_dict({'i': [1, 2, 3, 4],
                                       'j': ["one", "two", "three", "four"]})

# create a DuckDB relation from a dataframe
rel = con.from_df(input_df)

# chain together relational operators (this is a lazy operation, so the operations are not yet executed)
# equivalent to: SELECT i, j, i*2 AS two_i FROM input_df WHERE i >= 2 ORDER BY i DESC LIMIT 2
transformed_rel = rel.filter('i >= 2').project('i, j, i*2 AS two_i').order('i DESC').limit(2)

# trigger execution by requesting .df() of the relation
# .df() could have been added to the end of the chain above - it was separated for clarity
output_df = transformed_rel.df()

Реляционные операторы также могут использоваться для группировки строк, агрегирования, поиска уникальных комбинаций значений, объединения, объединения и многого другого. Они также могут напрямую вставлять результаты в таблицу DuckDB или записывать в CSV.

Пожалуйста, ознакомьтесь с этими дополнительными примерами и документацией доступных реляционных методов класса DuckDBPyRelation.

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/guides/python/relational_api_pandas.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API