Скажем, у меня есть панд DataframeКак ограничить размер запросов pandas на HDF5, чтобы он не превышал пределы RAM?
import pandas as pd
df = pd.DataFrame()
df
Column1 Column2
0 0.189086 -0.093137
1 0.621479 1.551653
2 1.631438 -1.635403
3 0.473935 1.941249
4 1.904851 -0.195161
5 0.236945 -0.288274
6 -0.473348 0.403882
7 0.953940 1.718043
8 -0.289416 0.790983
9 -0.884789 -1.584088
........
Примером запроса df.query('Column1 > Column2')
Допустим, вы хотите, чтобы ограничить сохранения этого запроса, поэтому объект не был столь велик. Есть ли способ «панд» для этого?
Мой вопрос в первую очередь предназначен для запроса объекта HDF5 с помощью pandas. Объект HDF5 может быть намного больше, чем ОЗУ, и поэтому запросы могут быть больше, чем ОЗУ.
# file1.h5 contains only one field_table/key/HDF5 group called 'df'
store = pd.HDFStore('file1.h5')
# the following query could be too large
df = store.select('df',columns=['column1', 'column2'], where=['column1==5'])
Есть ли способ pandas/Pythonic остановить пользователей для выполнения запросов, превосходящих определенный размер?
Вы хотите, чтобы остановить их, потому что он ломает машину? Или вы хотите найти способ по-прежнему достичь своих расчетов, не нарушая работу машины? Если последний, dask должен быть вашим другом – Boud
, то как насчет использования параметра 'chunksize' при вызове' store.select (...) '? – MaxU
@Boud Оба варианта - это то, что нужно учитывать. Как насчет первого? – ShanZhengYang