H5文件批量读写操作

1、遍历文件夹操作

for root, dirs, files in os.walk(file_location):
    # root输出文件夹,dirs输出root下所有的文件夹,files输出root下的所有的文件
    print('当前文件夹:', root)
    print('包含的文件夹:', dirs)
    print('包含的文件:', files)
    print()

os.walk是系统自带函数,用于遍历文件夹中的所有文件,os是python自带的系统库,前面要写个import os

2、批量读取文件名称

file_list = []  # 设置一个列表存储文件名称

设置循环遍历csv文件,将文件名称存储进file_list
for root, dirs, files in os.walk(file_location):
    for filename in files:
        if filename.endwith(.csv):
            file_path = os.join(root, filename)
            file_path = os.abspath(filename)
            file_list.append(file_path)

3、遍历文件名,批量导入数据

all_data = pd.Dataframe()  # 设置一个dataframe参数存储读出来的数据

循环读取参数
for fp in sorted(file_list):
    # 导入数据
    df = pd.read_csv(fp, skiprows=1, encoding=utf-8)
    all_data = all_data.append(df, ignore_index=True)

注意四点:

第一个需要使用sorted方法对文件列表进行排序

第二个encoding是utf-8还是gbk

第三个别忘了ingnore_index=True

第四个skiprows视情况而定,一般都等于1

4、对导入的数据再次排序

all_data.sort_values(by=['candle_begin_time'], inplace=True)

DataFrame.sort_values(by=’##’, axis=0, ascending=True, inplace=False, na_position=’last’)

by指定列名(axis=0或’index’)或索引值(axis=1或’columns’)axis若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0ascending是否按指定列的数组升序排列,默认为True,即升序排列inplace是否用排序后的数据集替换原来的数据,默认为False,即不替换na_position{‘first’,’last’},设定缺失值的显示位置

5、将批量读取的数据存储进一个H5文件

all_data.to_hdf(
    r'E:\Digitalcurrencyquant\part3\data\eos_1min_data.h5',
    key='all_data',
    format=table,
    mode='w'
)

这里要注意的是出现warning就加一个format=table

Original: https://blog.csdn.net/weixin_38754624/article/details/116452300
Author: 每天进步一点点321
Title: H5文件批量读写操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/755674/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球