前言
各个领域都需要批量处理一些数据文件(如:.xls、.xlsx等),并且需要进行一些筛选 *** 作才能得到目标数据(想要的数据),另外还有些生成其他数据格式的需求。针对这一系列的 *** 作本文就记录一下我的过程。
注:环境是Anaconda 的 Spyder(Python3.8)
提示:以下是本篇文章正文内容,下面案例可供参考
找到目标文件夹,批量读取文件夹中.xlsx格式的文件。注:文件夹目录是path,该文件夹下保存着需要读取的所有.xlsx文件。
代码如下
import pandas as pd
import os
path = "C:/Users/HUAWEI/Desktop/2022.5.11/Part1-点读" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
data = []#读取数据存放的变量
#遍历文件夹
for file in files:
#读取目标路径的文件
data = pd.read_excel(path+"/"+file)#此时获得的data 是dataframe结构,即键对应的属性结构
二、筛选数据
思路:
1、读取的数据data为dataframe,可以运用.loc()筛选符合要求的某几列(参考:链接: https://blog.csdn.net/weixin_45082522/article/details/106364847)
代码如下:
#将data中列名'Category'的值等于'Fixation'的行筛选出来,并将列名为'X','Y','Event'的三列筛选出来存到p
p = data.loc[data['Category'] == 'Fixation',['X','Y','Event']]
2、列名更改(看需求)
#列名为'X','Y','Event'更改为'start_x','start_y','duration'
p.rename(columns={'X':'start_x','Y':'start_y','Event':'duration'},inplace=True)
三、另存数据
将筛选完成的数据批量生成tsv格式存储,也可以是csv格式,参数稍作改变即可(后缀变为.csv,“\t"变为”,")。
注:没有指定路径,会跟.py文件生成在同一文件夹中,可自行指定路径
portion = os.path.splitext(file)#portion为名称和后缀分离后的列表
p.to_csv(portion[0]+'.tsv',sep="\t", index=False)#批量生成对原来读取的.xlsx的文件名+'.tsv'格式
代码汇总
import pandas as pd
import os
path = "C:/Users/HUAWEI/Desktop/2022.5.11/Part1-点读" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
data = []
for file in files:
#遍历文件夹
data = pd.read_excel(path+"/"+file)#打开文件读取目标路径的文件
p = data.loc[data['Category'] == 'Fixation',['X','Y','Event']]
p.rename(columns={'X':'start_x','Y':'start_y','Event':'duration'},inplace=True)
portion = os.path.splitext(file)#portion为名称和后缀分离后的列表
#生成.tsv格式文件
p.to_csv(portion[0]+'.tsv',sep="\t", index=False)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)