使用模数%
(以及可能类似的功能,例如功率**
)从HDF文件读取数据时,如何过滤(不加载整个数据集)数据?
这里是一个例子:
import pandas as pd
df = pd.DataFrame({'x': range(20)})
df.to_hdf('df.h5', 'df', format='table', data_columns=True)
pd.read_hdf('df.h5', 'df', where='x % 5 == 0')
错误:
TypeError: condition ``(x % 5)`` does not have a boolean type
在此示例中,像x > 10
这样的条件可以正常工作。
编辑:
我发现问题可能出在Term.evaluate()
内部,而该问题被称为Selection.__init__()
内部。原始术语分为条件ConditionBinOp
和过滤条件FilterBinOp
。在我的示例中,拆分分别为[Condition : [(x % 5)]]
和0
。如果情况为10 > 0
,则将其分为[Condition : [(x > 10)]]
和None
。