我有一个非常大的数据集,我通过 append 分块写入 hdf5,如下所示:
with pd.HDFStore(self.train_store_path) as train_store:
for filepath in tqdm(filepaths):
with open(filepath, 'rb') as file:
frame = pickle.load(file)
if frame.empty:
os.remove(filepath)
continue
try:
train_store.append(
key='dataset', value=frame,
min_itemsize=itemsize_dict)
os.remove(filepath)
except KeyError as e:
print(e)
except ValueError as e:
print(frame)
print(e)
except Exception as e:
print(e)
数据太大而无法加载到一个 DataFrame 中,所以我想尝试 vaex 进行进一步处理。不过有几件事我真的不明白。
由于 vaex 在 hdf5 中使用的表示形式与 pandas/pytables (VOTable) 不同,我想知道如何在这两种格式之间进行转换。我尝试将数据分块加载到 pandas 中,将其转换为 vaex DataFrame 然后存储它,但似乎无法将数据附加到现有的 vaex hdf5 文件中,至少我找不到。
真的没有办法从 vaex 中创建大型 hdf5 数据集吗?是将现有数据集转换为 vaex 表示的唯一选择(通过 python 脚本或 TOPCAT 构建文件)?
与我之前的问题相关,如果我在核心外使用 vaex 中的大型数据集,是否可以将我在 vaex 中应用的任何转换的结果保存到 hdf5 文件中?