使用 Python 将多个 CSV 导入 HDF5
Posted
技术标签:
【中文标题】使用 Python 将多个 CSV 导入 HDF5【英文标题】:import multiple CSV into HDF5 using Python 【发布时间】:2020-12-06 06:19:20 【问题描述】:我尝试使用以下代码将特定路径中的多个 CSV 文件导入日期集 HDF5 文件:
import numpy as np
import h5py
import pandas as pd
import glob
yourpath = '/root/Desktop/mal/ex1'
all_files = glob.glob(yourpath + "/*.csv")
li = []
for filename in all_files:
df = pd.read_csv(filename,index_col=None, header=0)
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)
hf = h5py.File('data.h5', 'w')
hf.create_dataset('dataset_1', data=frame)
hf.close()
但我有一个错误:
第 15 行,在 frame = pd.concat(li, axis=0, ignore_index=True) 文件“/usr/local/lib/python3.7/site-packages/pandas/core/reshape/concat.py” ,第 281 行,在 concat sort=sort 中,文件“/usr/local/lib/python3.7/site-packages/pandas/core/reshape/concat.py”,第 329 行,在 init 中引发 ValueError("No objects to concatenate") ValueError: 没有要连接的对象 –
【问题讨论】:
【参考方案1】:尝试以这种方式连接 csv 文件:
PATH = r"/...." # your Path
extension = 'csv'
os.chdir(PATH)
csv_list = glob.glob('*.'.format(extension))
print(csv_list)
# creates new df
df = pd.DataFrame()
for csv in csv_list:
temp = pd.read_csv(csv)
df = pd.concat([df, temp], ignore_index=True)
df.drop_duplicates(keep='first', inplace=True)
# .... here comes the rest of your code
【讨论】:
当我创建数据集 hf.create_dataset('dataset_1', data=df) 时,它的工作仍然有问题,错误是“TypeError: Object dtype dtype('O') has no native HDF5 equivalent”以上是关于使用 Python 将多个 CSV 导入 HDF5的主要内容,如果未能解决你的问题,请参考以下文章