To optimization load DataFrame from databases
Project description
Pandas-sql-loader
Модуль, реализующий функцию sql_load для оптимизации потрбеления памяти метода pandas.read_sql(). Проставляет минимально возможный для каждого столбца тип данных. (float64 -> float16, int64 -> uint8 и т.д)
Интерфейс метода полностью совместим с pandas.read_sql(), однако присутствуют дополнительные опциональные параметры.
sql_load interface
- sql_load(sql,
con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None, need_downcast=False, column_types=None, iterator=True)
Все стандартные параметры есть в документации, опишу только новые:
need_downcast: bool, default False
Флаг, устанавливающий нужна ли оптимизация памяти или нет.
column_types: list, default None
Список numpy типов, к которым нужно привести столбцы. Если в столбце есть значение, превыщающее заданный тип, то тип будет проигнорирован. Если длина списка меньше, чем кол-во столбцов, то список будет автоматически расширен типами uint8. Если не задан, то каждый столбец попытается привести к uint8.
iterator: bool, default True
Флаг, устанавливающий должен ли вернуться итератор или уже собранный из чанков DataFrame при установленном chunksize.
Рекомендация
Для датасетов, размер которых в полтора раза меньше чем доступная память и более, настоятельно рекомендуется использовать загрузку чанками, тк прежде чем сдаункастить типы, в память будет загружен DataFrame средствами самого пандас (т.е. с жирными типами)
Пример
Чтобы получить готовый оптимизированный DataFrame, но загруженный чанками:
df = sql_load(query, con, chunksize=10000, need_downcast=True, iterator=False)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pd_sql_loader-1.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cb638a0b50b1cdec12710a9cb3fbfa101e752e2a2c9793752ab625e1f86f2f6 |
|
MD5 | 73f867e062acaf05cb2971128b6e0c83 |
|
BLAKE2b-256 | c1a4b3ca42c9c964105cd288bd56e3c4c3aadbd8a3ef8c50248b5de19b132850 |