淘先锋技术网

首页 1 2 3 4 5 6 7

前言:

  这次是想对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.1
        new = 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_" + file
    sift.to_excel(outPath + out)