本文介绍基于Python语言,读取Excel表格文件,基于我们给定的规则,对其中的数据加以筛选,将不在指定数据范围内的数据剔除,保留符合我们需要的数据的方法。
首先,我们来明确一下本文的具体需求。现有一个Excel表格文件(在本文中我们就以.csv
格式的文件为例),如下图所示。
其中,Excel表格文件具有大量的数据,每一列表示某一种属性,每一行表示某一个样本;我们需要做的,就是对于其中的部分属性加以数据筛选——例如,我们希望对上图中第一列的数据进行筛选,将其中大于2
或小于-1
的部分选出来,并将每一个所选出的单元格对应的行直接删除;同时,我们还希望对其他的属性同样加以筛选,不同属性筛选的条件也各不相同,但都是需要将不符合条件的单元格所在的整行都删除。最终,我们保留下来的数据,就是符合我们需要的数据,此时我们需要将其保存为一个新的Excel表格文件。
明白了需求,我们即可开始代码的撰写;本文用到的具体代码如下所示。
# -*- coding: utf-8 -*- """ Created on Wed Jun 7 15:40:50 2023 @author: fkxxgis """ import pandas as pd original_file = "E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/23_Train_model_NoH/Train_Model_1_NoH.csv" result_file = "E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/23_Train_model_NoH/Train_Model_1_NoH_New.csv" df = pd.read_csv(original_file) df = df[(df["inf"] >= -0.2) & (df["inf"] = -1) & (df["NDVI"] = -0.2) & (df["inf_dif"] = -2) & (df["NDVI_dif"] = 0)] df = df[(df["inf_h"] >= -0.2) & (df["inf_h"] = -1) & (df["ndvi_h"] = -0.2) & (df["inf_h_dif"] = -1) & (df["ndvi_h_dif"] = -0.2
和df["inf"] = -1
和df["NDVI"] 0) & (result_df["blue"] 0) & (result_df["green"] 0) & (result_df["red"] 0) & (result_df["inf"] -1) & (result_df["NDVI"] -1) & (result_df["inf_dif"] -2) & (result_df["NDVI_dif"] = 0) & (result_df["NDVI_dif"] > -2) & (result_df["NDVI_dif"] -1) & (result_df["inf_h_dif"] -1) & (result_df["ndvi_h_dif"] < 1)]
上述代码可以直接对DataFrame对象加以一次性的筛选,不用每筛选一次就保存一次了。
运行本文提及的代码,我们即可在指定的结果文件夹下获得数据筛选后的文件了。
至此,大功告成。