admin管理员组文章数量:1794759
python 读文件夹下面所有csv格式文件
python 读文件夹下面所有csv格式文件
- 数据
- 代码
- 结果
- 结果
- 实在不会使用正则时,需要选定某个范围文件路径
- 结果
- 可能能用
数据内容 略 分隔符是不等长度的空格
代码 import pandas as pd import os def read_csv(filepath ,sep=',',encoding='ANSI',header=0): #filepath文件路径'C:\\\\Users\\\\Dell\\\\Desktop\\\\cal\\\\cml\\\\1\\\\' #sep分隔符 默认',' #encoding编码 默认'ANSI' p=[]#返回列表,里面每一个都装着dataframe a=[]#装路径 #获取路径文件夹下面的文件的全部路径 for file in os.listdir(filepath): a.append(os.path.join(filepath, file)) #将文件夹下的文件导入成dataframe,再装入列表p, #即p[0]是dataframe,一个csv文件的内容 for i in range(len(a)): p1=[] path=a[i] p1= pd.read_csv(path,sep=sep,encoding=encoding,header=header) p.append(p1) return p path=r'C:\\Users\\Dell\\Desktop\\cal\\cml\\3\\xinan\\xinan' p=read_csv(path,sep='\\s+',encoding='ANSI',header=None) c=pd.concat(p)#将p里面全部dataframe合成一个 结果导出成csv格式文件
path3=r'C:\\Users\\Dell\\Desktop\\cal\\cml\\3\\1\\1.csv' c.to_csv(path3,sep=',')如果输入的路径是乱序的,可参照如下代码:
import re list1 = [ 'F:\\\\cml\\\\数据处理\\\\数据处理\\\\test\\\\1998test\\\\CLDAS_prcp_cut_1998010103.nc', 'F:\\\\cml\\\\数据处理\\\\数据处理\\\\test\\\\1998test\\\\CLDAS_prcp_cut_1998010101.nc', 'F:\\\\cml\\\\数据处理\\\\数据处理\\\\test\\\\1998test\\\\CLDAS_prcp_cut_1998010102.nc',] new = sorted(list1,key = lambda i:int(re.search(r'(\\d{10})',i).group())) #根据需要替换 r'(\\d{10})' print(new)正则表达式寻找顺序规律
结果 实在不会使用正则时,需要选定某个范围文件路径 #例 a1=['CLDAS_prcp_cut_1998010101.nc','CLDAS_prcp_cut_1998031602.nc', 'CLDAS_prcp_cut_1999043021.nc','CLDAS_prcp_cut_1999062719.nc', 'CLDAS_prcp_cut_2000032701.nc','CLDAS_prcp_cut_2000030505.nc'] #筛选条件 y=['1998','1999','2000'] m=['02','03','04'] d=['05','16','27','30'] h=['02','19','21'] #装路径 path=[] for a in a1: # if a[15:19] in y and a[19:21] in m and a[21:23] in d and a[23:25] in h: if a[15:19] in y :#字符串年份的位置 if a[19:21] in m : if a[21:23] in d : if a[23:25] in h: path.append(a) else: print('h:',a[23:25]) else: print('d:',a[21:23]) else: print('m:',a[19:21]) else: print('y:',a[15:19]) path 结果 可能能用 p1[p1['number'].isin([i[0] for i in p.values])] # isin(xxx),xxx是要选的列表,在number列里面满足要求的数据 # dataframe里面通过列表选择想要的数据 # p1是多的那个dataframe,p是想选的那个dataframe,只有一列的 p1[p1['所选列'].isin(['想要的数据列表'])]版权声明:本文标题:python 读文件夹下面所有csv格式文件 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1687006615a127955.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论