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=0
ascending是否按指定列的数组升序排列,默认为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

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值