将HDF5文件转换为.csv pandas的问题



我正在尝试将许多.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文件中都有多个数据集。

最新更新