首页 > 解决方案 > AttributeError:“列表”对象没有属性“to_hdf”

问题描述

我正在运行以下代码,该代码导入 csv 文件并将所有数据附加到单个 DATA 数组中。但是在将此数组存储到 HDF5 时,我不断收到错误 AttributeError:'list' object has no attribute 'to_hdf'。请帮助我了解我所缺少的。

import pandas as pd
import h5py
import glob
import os

path = "Z:\Test Data"
def get_CSV_files(path):
    results = []
    for root, dirs, files in os.walk(path):
        for file in files:
            fileExt=os.path.splitext(file)[-1]
            if fileExt.lower() == '.csv':
                results.append(os.path.join(root, file))
        for directory in dirs:
            results += get_CSV_files(os.path.join(root, directory))
    return results

def store_all_data_hdf5(path):
    files = get_CSV_files(path)
    DATA=[]
    for file_name in files:
        data = pd.DataFrame.from_csv(file_name, sep="\t")
        DATA.append(data)
    store = pd.HDFStore('STORE.h5')
    DATA.to_hdf('STORE.h5','table', append=True)
    store.close()
    return DATA

标签: pythonhdf5

解决方案


DATA 是您定义的列表 -DATA=[]它没有属性to_hdf

您可以在此处找到一些如何使用 pandas 的示例HDFStore

你可能需要类似的东西 -

def store_all_data_hdf5(path):
    files = get_CSV_files(path)
    DATA=[]
    store = pd.HDFStore('STORE.h5')
    for file_name in files:
        data = pd.DataFrame.from_csv(file_name, sep="\t")
        DATA.append(data)
        store.put('my_file', data, append=True)
    store.close()
    return DATA

推荐阅读