前言:
这次是想对excel的数据进行筛选功能,减轻一些数据负担,虽然excel自带了筛选功能,但是一个是需要一次次点击,另外若是存在多个数据,那么就会发现你所做的操作又重复又无聊。
数据格式:
需求:
提取5,6,11这三列,对于力的大小进行范围筛选,要求是力是200-450,每次提升的距离为1,并且间距为+-0.1,拿200来说,也就是[199.9,200.1],不断往上递增。
代码实现:
import numpy as np
import pandas as pd
import os# 读取所有excel所在文件夹地址
filePath = "所有excel所在文件夹地址"
# 保存所有筛选excel的文件夹地址
outPath = "保存所有筛选excel的文件夹地址"for file in os.listdir(filePath):# 获取文件夹中的csv文件名file_csv = filePath + file# print(file_csv)# 读取文件的第5、6、11列df = pd.read_excel(file_csv, usecols=[5, 6, 11])# 提取第一行之后的数据,因为要删掉第一行乱七八糟的东西df = df.iloc[1:]# print(df[:10])# 筛选sift = pd.DataFrame()# out=pd.concat([new,new2],axis=0)# print(out)# out.to_excel('F:/database/matou/data/1-2-a-r_sift.xlsx')for i in range(200, 451):# 筛选条件是[200,450],间距为+-0.1new = df.loc[(df['力'].astype(float) >= (i - 0.1)) & (df['力'].astype(float) <= (i + 0.1))]sift = pd.concat([sift, new], axis=0)print(sift)out = "sift_" + filesift.to_excel(outPath + out)