我正在尝试将许多.H5文件转换为可以在Tableau打开的格式。由于我是Python调试器的新手,因此我无法检测到可能发生的任何运行时错误。另外,我不确定是否更好地将结果CSV拆分,或将其全部保存到一个文件中。我不是如何做这两种事情的积极。
from pandas import HDFStore
import pdb
import os
indir = 'C:UsersAktosardata'
for root, dirs, filenames in os.walk(indir)
for f in filenames:
Pandas.convert(f)
我也无法决定使用.toCSV还是其他保存方法。任何成功将所有数据转换为可以在Tableau打开的CSV的方法都是此运动的正确方法。:)
完成此操作的任何帮助将不胜感激!
我认为 os.walk
可能很棘手。很容易失去您的位置。最重要的是,无论您从pd.HDFStore
阅读还是使用pd.read_hdf
, .h5
with pandas也可能很棘手。在H5文件中找出数据集名称更加荒谬。可以说,很多事情可能会出错。
import pandas as pd
import numpy as np
import h5py
import os
dfs = []
for path, dirs, filenames in os.walk(os.curdir):
if path != os.curdir:
print(path, dirs, filenames)
for file in filenames:
file_path = os.path.join(path, file)
h5_store = h5py.File(file_path, mode='r')
dataset_names = list(h5_store.keys())
for dataset in dataset_names:
df = pd.DataFrame(h5_store[dataset].value)
print(file, df.shape)
dfs.append(df)
h5_store.close()
final = pd.concat(dfs, ignore_index=True).reset_index()
print(final.shape)
我的目录看起来像:
dir1
arr0.h5
dir4
arr0.h5
arr1.h5
arr2.h5
arr3.h5
dir2
arr0.h5
arr1.h5
dir3
arr0.h5
arr1.h5
arr2.h5
dir5
arr0.h5
dir6
arr0.h5
arr1.h5
arr2.h5
arr3.h5
dir7
arr0.h5
arr1.h5
arr2.h5
arr3.h5
df = pd.DataFrame(h5_store[dataset].value)
零件是关键。那可能行不通。这取决于数据的类型。您可以尝试pd.read_hdf(...)
如果不起作用。这也取决于您是否在每个.h5文件中都有多个数据集。