pandas.read_sql
- pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)[source]
-
Чтение SQL запроса или таблицы базы данных в DataFrame.
Эта функция является удобной обёрткой вокруг
read_sql_tableиread_sql_query(для обратной совместимости). Она будет делегировать вызов конкретной функции в зависимости от предоставленного входного значения. SQL запрос будет перенаправлен наread_sql_query, а имя таблицы базы данных — наread_sql_table. Обратите внимание, что делегированная функция может иметь более специфические замечания о её функциональности, не указанные здесь.- Parameters
-
- sql:str или SQLAlchemy Selectable (объект select или text)
-
SQL запрос для выполнения или имя таблицы.
- con:SQLAlchemy connectable, str или соединение sqlite3
-
Использование SQLAlchemy позволяет использовать любую БД, поддерживаемую этой библиотекой. Если объект DBAPI2, поддерживается только sqlite3. Пользователь отвечает за уничтожение движка и закрытие соединения для SQLAlchemy connectable; соединения типа str закрываются автоматически. См. здесь.
- index_col:str или список str, необязательно, по умолчанию: None
-
Столбец(ы) для установки в качестве индекса (MultiIndex).
- coerce_float:bool, по умолчанию True
-
Попытка преобразовать значения нестроковых, нечисловых объектов (например, decimal.Decimal) в числа с плавающей точкой, полезно для наборов результатов SQL.
- params:список, кортеж или словарь, необязательно, по умолчанию: None
-
Список параметров для передачи методу execute. Синтаксис передачи параметров зависит от драйвера базы данных. Обратитесь к документации драйвера вашей базы данных, чтобы узнать, какой из пяти стилей синтаксиса, описанных в PEP 249’s paramstyle, поддерживается. Например, для psycopg2 используется %(name)s, поэтому используйте params={‘name’ : ‘value’}.
- parse_dates:список или словарь, по умолчанию: None
-
Список имён столбцов для преобразования в даты.
Словарь
{column_name: format string}, где строка формата совместима с strftime в случае разбора строковых времен или является одним из (D, s, ns, ms, us) в случае разбора целочисленных временных меток.Словарь
{column_name: arg dict}, где словарь arg соответствует ключевым аргументамpandas.to_datetime(). Особенно полезно при работе с базами данных без встроенной поддержки Datetime, таких как SQLite.
- columns:список, по умолчанию: None
-
Список имён столбцов для выбора из SQL таблицы (используется только при чтении таблицы).
- chunksize:целое число, по умолчанию None
-
Если задано, возвращает итератор, где chunksize — количество строк в каждом фрагменте.
- Returns
-
- DataFrame или Iterator[DataFrame]
См. также
read_sql_table-
Чтение SQL таблицы базы данных в DataFrame.
read_sql_query-
Чтение SQL запроса в DataFrame.
Примеры
Чтение данных из SQL с помощью SQL запроса или имени SQL таблицы. При использовании базы данных SQLite принимаются только SQL запросы, предоставление только имени SQL таблицы приведёт к ошибке.
>>> from sqlite3 import connect >>> conn = connect(':memory:') >>> df = pd.DataFrame(data=[[0, '10/11/12'], [1, '12/11/10']], ... columns=['int_column', 'date_column']) >>> df.to_sql('test_data', conn) 2>>> pd.read_sql('SELECT int_column, date_column FROM test_data', conn) int_column date_column 0 0 10/11/12 1 1 12/11/10>>> pd.read_sql('test_data', 'postgres:///db_name')Применение преобразования дат к столбцам с помощью аргумента
parse_dates>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates=["date_column"]) int_column date_column 0 0 2012-10-11 1 1 2010-12-11Аргумент
parse_datesвызываетpd.to_datetimeдля предоставленных столбцов. Пользовательские значения аргументов для примененияpd.to_datetimeк столбцу задаются в формате словаря: 1. Игнорирование ошибок при разборе значений столбца “date_column”>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates={"date_column": {"errors": "ignore"}}) int_column date_column 0 0 2012-10-11 1 1 2010-12-11Применение порядка разбора дат dayfirst к значениям столбца “date_column”
>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates={"date_column": {"dayfirst": True}}) int_column date_column 0 0 2012-11-10 1 1 2010-11-12Применение пользовательского формата при разборе дат значений столбца “date_column”
>>> pd.read_sql('SELECT int_column, date_column FROM test_data', ... conn, ... parse_dates={"date_column": {"format": "%d/%m/%y"}}) int_column date_column 0 0 2012-11-10 1 1 2010-11-12
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.read_sql.html