Spec-Zone.ru › Polars

polars.DataFrame.sql

DataFrame.sql(
    query: str,
    *,
    table_name: str = 'self',
) → DataFrame

Выполняет SQL-запрос к DataFrame.

Добавлено в версии 0.20.24.

Предупреждение

Эта функциональность считается нестабильной, хотя уже близка к тому, чтобы считаться стабильной. Она может быть изменена в любой момент без того, чтобы это считалось несовместимым изменением.

Параметры:
query

SQL-запрос для выполнения.

table_name

При необходимости укажите явное имя таблицы, представляющей вызывающий DataFrame (по умолчанию — “self”).

См. также

SQLContext

Примечания

  • Вызывающий DataFrame автоматически регистрируется в SQLContext как таблица с именем “self”. Чтобы получить доступ к DataFrame и LazyFrame из текущей области globals, используйте функцию верхнего уровня pl.sql.
  • Для более гибкого управления регистрацией и выполнением используйте объект SQLContext.
  • SQL-запрос выполняется в ленивом режиме, а затем результат собирается и возвращается в виде DataFrame.

Примеры

>>> from datetime import date
>>> df1 = pl.DataFrame(
...     {
...         "a": [1, 2, 3],
...         "b": ["zz", "yy", "xx"],
...         "c": [date(1999, 12, 31), date(2010, 10, 10), date(2077, 8, 8)],
...     }
... )

Запрос к DataFrame с помощью SQL:

>>> df1.sql("SELECT c, b FROM self WHERE a > 1")
shape: (2, 2)
┌────────────┬─────┐
│ c          ┆ b   │
│ ---        ┆ --- │
│ date       ┆ str │
╞════════════╪═════╡
│ 2010-10-10 ┆ yy  │
│ 2077-08-08 ┆ xx  │
└────────────┴─────┘

Преобразование DataFrame с помощью SQL с псевдонимом “frame” вместо “self”.

>>> df1.sql(
...     query='''
...         SELECT
...             a,
...             (a % 2 == 0) AS a_is_even,
...             CONCAT_WS(':', b, b) AS b_b,
...             EXTRACT(year FROM c) AS year,
...             0::float4 AS "zero",
...         FROM frame
...     ''',
...     table_name="frame",
... )
shape: (3, 5)
┌─────┬───────────┬───────┬──────┬──────┐
│ a   ┆ a_is_even ┆ b_b   ┆ year ┆ zero │
│ --- ┆ ---       ┆ ---   ┆ ---  ┆ ---  │
│ i64 ┆ bool      ┆ str   ┆ i32  ┆ f32  │
╞═════╪═══════════╪═══════╪══════╪══════╡
│ 1   ┆ false     ┆ zz:zz ┆ 1999 ┆ 0.0  │
│ 2   ┆ true      ┆ yy:yy ┆ 2010 ┆ 0.0  │
│ 3   ┆ false     ┆ xx:xx ┆ 2077 ┆ 0.0  │
└─────┴───────────┴───────┴──────┴──────┘

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.sql.html

Spec-Zone.ru

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