python读取大量csv

问题描述

需要对近5w个csv进行归并处理,使用pandas

文件夹和文件不能以数字作为开头

开头的话,python会加上各种/x,看了些教程,最后觉得不如改名,往前面添加同样的字母来解决问题。

#给文件夹和子文件夹加上ds
#作用:避免以数字开头,python无法读取

import os
import sys

path = "F:\xxx"
files = os.listdir(path)
newName = ""
for name in files:
    path1 = path +'\\'+ name;    # 第一层目录fsk_csv
    files1 = os.listdir(path1)

    for name1 in files1:
        path2 = path1 + '\\' + name1; # 第二层目录2FSK_0dB
        files2 = os.listdir(path2)
        for name2 in files2:         #读取第二层目录内文件并改名
            a = os.path.split(name2)
            os.rename(path2+'\\'+name2, path2+'\\ds'+ str(a[1]))

工作了1分钟全搞定。

读取csv

在这里插入图片描述
第一次用pandas的read_csv读取出现问题:读取时总把第一行作列属性,使我的数据少了一行。
pd.read_csv( csv_name_list[0],header=None),加上header=None可解决问题

import pandas as pd
import os

# 要拼接的文件夹及其完整路径,注不要包含中文
## 待读取批量csv的文件夹
read_path =  "F:\xxx"
# 修改当前工作目录
os.chdir(read_path)
# 将该文件夹下的所有文件名存入列表
csv_name_list = os.listdir()
# 读取第一个CSV文件并包含表头,用于后续的csv文件拼接
df = pd.read_csv( csv_name_list[0],header=None) #不把第一行作列属性
dfv = df.values

搞定
在这里插入图片描述

python字符串与数值转换

https://www.cnblogs.com/chenfulin5/p/7813791.html
这里主要用了int().

python中的hdf5

纠结了很久,发觉如果实时读取csv进python存储成变量速度还是太慢,意义不大。
加上这批数据是用来存储训练模型的数据,所以要求不用那么高,不如直接存成一个hdf5,提供给后面的兄弟训练模型。

由于我只需要dataset,hdf5中的group和其他概念我也暂时用不上,贴一个pyhton最简单的构建hdf5的方式

import h5py
f = h5py.File("mytestfile.hdf5", "w")
dsetx = f.create_dataset("X", data=ndarrayX)
dsety = f.create_dataset("Y", data=ndarrayY)
dsetz = f.create_dataset("Z", data=ndarrayZ)
f.close()

读取更简单,直接读:

    test_file = h5py.File(test_filename, 'r')
    X = test_file['X']
    Y = test_file['Y'][:]
    Z = test_file['Z'][:]
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值