pandas.read_sql
- pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None, dtype_backend=_NoDefault.no_default, dtype=None)[source]
-
Чтение SQL запроса или таблицы базы данных в DataFrame.
Эта функция является удобной обёрткой вокруг
read_sql_tableиread_sql_query(для обратной совместимости). Она будет делегировать выполнение конкретной функции в зависимости от предоставленного входного значения. SQL-запрос будет перенаправлен наread_sql_query, а имя таблицы базы данных — наread_sql_table. Обратите внимание, что делегированная функция может иметь более конкретные примечания о её функциональности, не указанные здесь.- Параметры:
-
- sql:str или SQLAlchemy Selectable (объект select или text)
-
SQL-запрос для выполнения или имя таблицы.
- con:Соединение ADBC, SQLAlchemy connectable, str или sqlite3 соединение
-
ADBC обеспечивает высокую производительность ввода-вывода с нативной поддержкой типов, где это возможно. Использование SQLAlchemy позволяет использовать любую базу данных, поддерживаемую этой библиотекой. Если объект DBAPI2, поддерживается только sqlite3. Пользователь отвечает за удаление движка и закрытие соединения для соединения ADBC и SQLAlchemy connectable; соединения str закрываются автоматически. См. здесь.
- index_col:str или список str, необязательно, по умолчанию: None
-
Столбец(ы) для задания индекса (MultiIndex).
- coerce_float:bool, по умолчанию True
-
Попытка преобразовать значения нестроковых, нечисловых объектов (например, decimal.Decimal) в числа с плавающей точкой, полезно для наборов результатов SQL.
- params:список, кортеж или словарь, необязательно, по умолчанию: None
-
Список параметров для передачи методу execute. Синтаксис передачи параметров зависит от драйвера базы данных. Проверьте документацию драйвера вашей базы данных, чтобы узнать, какой из пяти синтаксических стилей, описанных в PEP 249, поддерживается. Например, для 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:int, по умолчанию None
-
Если указано, возвращает итератор, где chunksize — количество строк, включаемых в каждый фрагмент.
- dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, по умолчанию ‘numpy_nullable’
-
Обработка типов данных, применяемая к результирующему
DataFrame(пока экспериментальная функция). Поведение следующее:"numpy_nullable": возвращаетDataFrameс поддержкой nullable типов данных (по умолчанию)."pyarrow": возвращаетArrowDtypeDataFrame с поддержкой nullable типов данных.
Новая в версии 2.0.
- dtype:Имя типа или словарь столбцов
-
Тип данных для данных или столбцов. Например, np.float64 или {‘a’: np.float64, ‘b’: np.int32, ‘c’: ‘Int64’}. Аргумент игнорируется, если вместо запроса передаётся таблица.
Новая в версии 2.0.0.
- Возвращает:
-
- 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(name='test_data', con=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Аргументparse_datesвызываетpd.to_datetimeдля предоставленных столбцов. Пользовательские значения аргументов для примененияpd.to_datetimeк столбцу указываются в формате словаря:>>> 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Новая в версии 2.2.0: pandas теперь поддерживает чтение через драйверы ADBC
>>> from adbc_driver_postgresql import dbapi >>> with dbapi.connect('postgres:///db_name') as conn: ... pd.read_sql('SELECT int_column FROM test_data', conn) int_column 0 0 1 1
© 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/2.2.2/reference/api/pandas.read_sql.html