如何限制 HDF5 上 pandas 查询的大小,使其不超过 RAM 限制?
How to limit the size of pandas queries on HDF5 so it doesn't go over RAM limit?
假设我有一个 pandas Dataframe
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')
假设您想限制此查询的保存,因此对象不是那么大。有 "pandas" 方法可以做到这一点吗?
我的问题主要是关于使用 pandas 查询 HDF5 对象。 HDF5 对象可能比 RAM 大得多,因此查询可能比 RAM 大。
# 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 方法来阻止用户执行超过特定大小的查询?
下面是调用HDFStore.select()
时如何使用chunksize
参数的小演示:
for chunk in store.select('df', columns=['column1', 'column2'],
where='column1==5', chunksize=10**6):
# process `chunk` DF
假设我有一个 pandas Dataframe
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')
假设您想限制此查询的保存,因此对象不是那么大。有 "pandas" 方法可以做到这一点吗?
我的问题主要是关于使用 pandas 查询 HDF5 对象。 HDF5 对象可能比 RAM 大得多,因此查询可能比 RAM 大。
# 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 方法来阻止用户执行超过特定大小的查询?
下面是调用HDFStore.select()
时如何使用chunksize
参数的小演示:
for chunk in store.select('df', columns=['column1', 'column2'],
where='column1==5', chunksize=10**6):
# process `chunk` DF