Python按条件删除Excel表格数据的方法
1.安装Amos结构方程模型分析软件的方法2.如何不显示我的电脑、回收站等图标?3.SPSS计算极值、平均值、中位数、方差、偏度、峰度、变异系数4.无需代码绘制人工神经网络ANN模型结构图的方法5.论文的技术路线流程图如何绘制?6.电脑缩放异常、显示亮度无法调整的处理办法7.EndNote参考文献格式Output Styles界面介绍8.Windows电脑环境变量(用户变量、系统变量)的修改9.如何修改电脑的BIOS密码?10.叶绿素含量测定仪SPAD-502怎么使用?11.全球都有哪些高光谱遥感卫星?12.创建Anaconda虚拟Python环境的方法13.Anaconda虚拟环境配置Python库与Spyder编译器14.小提琴图的绘制方法:Python matplotlib实现15.如何用CAN-EYE获取植被参数数据?16.ArcMap属性表出现乱码情况的解决17.考研保研、夏令营推免的简历模板18.安装MicroStation软件、Terrasolid插件的方法19.VMware虚拟机部署Linux Ubuntu系统的方法20.在Linux Ubuntu系统中部署C++环境与Visual Studio Code软件21.安装Visual Studio的详细流程22.获取Visual Studio所用MSVC编译器版本:_MSC_VER数值23.Visual Studio部署C++矩阵库Armadillo的方法24.如何在Visual Studio新C++项目中调用之前配置过的库?25.在Visual Studio中部署GDAL库的C++版本(包括SQLite、PROJ等依赖)26.C++遴选出特定类型的文件或文件名符合要求的文件27.初步上手Git软件及GitHub平台:基本操作方法28.下载、安装Git并拷贝GitHub项目到本地的流程29.Visual Studio部署matplotlib绘图库的C++版本30.Anaconda与Python环境在Windows中的部署31.Windows配置R语言、RStudio开发环境32.Visual Studio部署C++环境下OpenCV库33.ArcMap的mxd文件没有数据、显示感叹号怎么办?34.绘制三元图、颜色空间图:R语言代码35.Linux电脑如何下载QGIS?36.Python表格处理模块xlrd在Anaconda中的安装37.Postman模拟浏览器网页请求并获取网页数据38.多次复制Excel符合要求的数据行:Python批量实现39.电脑开机时报错No Bootable Device找不到索引的解决方法40.论文研究区域图的制作方法:ArcGIS41.修改中文、英文参考文献在文末列表中的顺序:EndNote42.ArcPy自动绘制大量地图并设置地图要素:Python43.Python提取文本文件(.txt)数据的方法44.将大量文件的拓展名中大写字母改为小写:Python实现45.浏览器打开JupyterLab后所有快捷键与窗口按键均失效怎么办?46.将编译过的C++库迅速部署在Visual Studio新项目中47.EndNote里参考文献的期刊名显示错误怎么办?48.找出长时序遥感影像的缺失日期并用像素均为0的栅格填充缺失日期的文件49.Python依据遥感影像的分幅筛选出对应的栅格文件50.Python结合文件名称将多个文件复制到不同路径下51.mklink命令使得OneDrive同步任意一个文件夹52.在Ubuntu系统安装Anaconda及Python53.GIS数据获取:土地利用与土壤属性、DEM、水体水系数据54.配置h5py、netCDF4库的方法:Anaconda环境55.核对不同文件夹所含内容的差异并提取缺失内容:Python代码56.坚果云与floccus实现Chrome书签国内跨设备、跨平台同步57.基于FileZilla上传、下载服务器数据的方法58.Python按条件筛选、剔除表格数据并绘制剔除前后的直方图59.R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图60.Linux服务器PBS任务队列作业提交脚本的使用方法
61.Python按条件删除Excel表格数据的方法
62.PowerShell快速修改多个文件的名称63.用whl文件安装Anaconda中的GDAL64.ArcGIS创建渔网工具的使用方法65.Python自动复制Excel数据:将各行分别重复指定次数66.Python批量分割Excel后逐行做差、合并文件的方法67.Python将表格文件中某些列的数据整体向上移动一行68.GIS转码的秋招历程与踩坑经历69.通过MobaXterm操作远程服务器电脑的方法70.将ASD光谱仪的.asd文件转为文本文件71.搜广推算法校招面试:BOSS直聘 推荐搜索系统工程师72.查找大量时序遥感文件缺失、不连贯的成像日期:Python代码73.华为校招三轮面经:通用软件开发工程师74.合并具有文本框的Word文档:VBA代码批量操作75.ArcGIS填补面图层的细小空白并删除主体部分外的零散部分76.开启Word、Excel、PPT时速度很慢的一种解决方法77.基于高德地图API在Python中实现地图功能的方法78.Python在多个Excel文件中找出缺失数据行数多的文件79.GIS数据合集:作物、植被数据下载平台整理80.OneDrive分享、多人操作电脑中大文件的方法81.复制浏览器网页文字 粘贴时却乱码的解决本文介绍基于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"] <= 18)]
df = df[(df["NDVI"] >= -1) & (df["NDVI"] <= 1)]
df = df[(df["inf_dif"] >= -0.2) & (df["inf_dif"] <= 18)]
df = df[(df["NDVI_dif"] >= -2) & (df["NDVI_dif"] <= 2)]
df = df[(df["soil"] >= 0)]
df = df[(df["inf_h"] >= -0.2) & (df["inf_h"] <= 18)]
df = df[(df["ndvi_h"] >= -1) & (df["ndvi_h"] <= 1)]
df = df[(df["inf_h_dif"] >= -0.2) & (df["inf_h_dif"] <= 18)]
df = df[(df["ndvi_h_dif"] >= -1) & (df["ndvi_h_dif"] <= 1)]
df.to_csv(result_file, index = False)
下面是对上述代码每个步骤的解释:
- 导入必要的库:导入了
pandas
库,用于数据处理和操作。 - 定义文件路径:定义了原始文件路径
original_file
和结果文件路径result_file
。 - 读取原始数据:使用
pd.read_csv()
函数读取原始文件数据,并将其存储在DataFrame对象df
中。 - 数据筛选:对DataFrame对象
df
进行多个条件的筛选操作,使用了逻辑运算符&
和比较运算符进行条件组合。例如,其中的第一行df["inf"] >= -0.2
和df["inf"] <= 18
就表示筛选出"inf"
列的值在-0.2
到18
之间的数据;第二行df["NDVI"] >= -1
和df["NDVI"] <= 1
则表示筛选出"NDVI"
列的值在-1
到1
之间的数据,以此类推。 - 保存结果数据:使用
to_csv()
函数将筛选后的DataFrame对象df
保存为新的.csv
文件,保存路径为result_file
,并设置index=False
以避免保存索引列。
当然,如果我们需要对多个属性(也就是多个列)的数据加以筛选,除了上述代码中的方法,我们还可以用如下所示的代码,较之前述代码会更方便一些。
result_df = result_df[(result_df["blue"] > 0) & (result_df["blue"] <= 1) &
(result_df["green"] > 0) & (result_df["green"] <= 1) &
(result_df["red"] > 0) & (result_df["red"] <= 1) &
(result_df["inf"] > 0) & (result_df["inf"] <= 1) &
(result_df["NDVI"] > -1) & (result_df["NDVI"] < 1) &
(result_df["inf_dif"] > -1) & (result_df["inf_dif"] < 1) &
(result_df["NDVI_dif"] > -2) & (result_df["NDVI_dif"] < 2) &
(result_df["soil"] >= 0) &
(result_df["NDVI_dif"] > -2) & (result_df["NDVI_dif"] < 2) &
(result_df["inf_h_dif"] > -1) & (result_df["inf_h_dif"] < 1) &
(result_df["ndvi_h_dif"] > -1) & (result_df["ndvi_h_dif"] < 1)]
上述代码可以直接对DataFrame对象加以一次性的筛选,不用每筛选一次就保存一次了。
运行本文提及的代码,我们即可在指定的结果文件夹下获得数据筛选后的文件了。
至此,大功告成。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇