【发布时间】:2017-02-20 13:23:36
【问题描述】:
假设我有一个熊猫数据框
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 对象。 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 方法可以阻止用户执行超过一定大小的查询?
【问题讨论】:
-
你想阻止他们,因为它会破坏机器吗?或者您是否想找到一种在不破坏机器的情况下仍能实现计算的方法?如果是后者,dask 应该是你的朋友
-
在调用
store.select(...)时使用chunksize参数怎么样? -
@Boud 这两个选项都需要考虑。前者呢?
-
@MaxU 可以。如何使用普通的 pandas 数据框实现这一点?
标签: python pandas dataframe hdf5 pytables