从HDF商店中选择最大值

时间:2018-04-12 09:28:35

标签: bash pandas hdf5 hdfstore

我想从大型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文件只需几秒钟。

此致

0 个答案:

没有答案