polars.DataFrame.sql
-
Выполняет SQL-запрос к DataFrame.
Добавлено в версии 0.20.24.
Предупреждение
Эта функциональность считается нестабильной, хотя уже близка к тому, чтобы считаться стабильной. Она может быть изменена в любой момент без того, чтобы это считалось несовместимым изменением.
- Параметры:
-
- query
-
SQL-запрос для выполнения.
- table_name
-
При необходимости укажите явное имя таблицы, представляющей вызывающий DataFrame (по умолчанию — “self”).
См. также
Примечания
- Вызывающий 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 │ └─────┴───────────┴───────┴──────┴──────┘
DataFrame.sql(
query: str,
*,
table_name: str = 'self',
) → DataFrame
© 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