我想从大型HDF商店的某些列中选择最大值。
适用于较小数据集的方法无法扩展,因为它首先读取所有数据,然后选择最大值。
myWidth = {}
store = pd.HDFStore('store_TRAIN.h5')
for i in features_cat:
myWidth.update({i:max(store.select_as_multiple(['myData','myFeatures','myCount']).iloc[:,i])})
print(i)
store.close()
在pd.HDFStore的文档中,我只能找到' where'条件,但没有像' max()'。 另外,pandas hdfsql只适用于已经在内存中的pandas数据帧。
我很感激任何提示。 感谢
修改
对于那些寻找类似答案的人:
我遇到了HDFql,看起来很有希望。但它不是(还是?)作为pip包提供。这将是一种未来考虑的方法,或者是一项经常性的任务。
这次我发现通过bash命令解析原始CSV文件会更快:
cut -d, -f2 < train_data.csv |sort -nr | head -1
此示例假设使用逗号分隔文件,在第二列中查找最大金额。
7GB文件只需几秒钟。
此致