Python按条件删除Excel表格数据的方法

news/2024/11/17 15:45:38/文章来源:https://www.cnblogs.com/fkxxgis/p/18350610

  本文介绍基于Python语言,读取Excel表格文件,基于我们给定的规则,对其中的数据加以筛选,将不在指定数据范围内的数据剔除,保留符合我们需要的数据的方法。

  首先,我们来明确一下本文的具体需求。现有一个Excel表格文件(在本文中我们就以.csv格式的文件为例),如下图所示。

image

  其中,Excel表格文件具有大量的数据,每一列表示某一种属性每一行表示某一个样本;我们需要做的,就是对于其中的部分属性加以数据筛选——例如,我们希望对上图中第一列的数据进行筛选,将其中大于2或小于-1的部分选出来,并将每一个所选出的单元格对应的直接删除;同时,我们还希望对其他的属性同样加以筛选,不同属性筛选的条件也各不相同,但都是需要将不符合条件的单元格所在的整行都删除。最终,我们保留下来的数据,就是符合我们需要的数据,此时我们需要将其保存为一个新的Excel表格文件。

  明白了需求,我们即可开始代码的撰写;本文用到的具体代码如下所示。

# -*- coding: utf-8 -*-
"""
Created on Wed Jun  7 15:40:50 2023@author: fkxxgis
"""import pandas as pdoriginal_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)

  下面是对上述代码每个步骤的解释:

  1. 导入必要的库:导入了pandas库,用于数据处理和操作。
  2. 定义文件路径:定义了原始文件路径original_file和结果文件路径result_file
  3. 读取原始数据:使用pd.read_csv()函数读取原始文件数据,并将其存储在DataFrame对象df中。
  4. 数据筛选:对DataFrame对象df进行多个条件的筛选操作,使用了逻辑运算符&和比较运算符进行条件组合。例如,其中的第一行df["inf"] >= -0.2df["inf"] <= 18就表示筛选出"inf"列的值在-0.218之间的数据;第二行df["NDVI"] >= -1df["NDVI"] <= 1则表示筛选出"NDVI"列的值在-11之间的数据,以此类推。
  5. 保存结果数据:使用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对象加以一次性的筛选,不用每筛选一次就保存一次了。

  运行本文提及的代码,我们即可在指定的结果文件夹下获得数据筛选后的文件了。

  至此,大功告成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/780258.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git rebase重定基时冲突,文件损坏出现HEAD标志一键删除

我遇到这种情况,我去找同类文章,结果他们说删除就行了,(要是我能一键修复还用得着你?) 终于在Github Docs找到了一键删除的方法:git rebase --abort第二解决方法: 使用VSCode

git合并代码时冲突,文件损坏出现HEAD标志一键删除

我遇到这种情况,我去找同类文章,结果他们说删除就行了,(要是我能一键修复还用得着你?) 我的解决方法: 使用VSCode

一文读懂银企直联

中国企业财资管理发展的二十年,也是银企直联发展的二十年。作为财资管理的底层技术支撑,银企直联一直是中国财资管理行业发展道路上的基石。通过银企直联,企业不仅可以实现跨银行的全局账户视通和足不出户的企业直联支付,还能实现跨银行的资金自动归集。然而,银企直联的建…

Springboot+logback+druid +密码加密 实现业务日志入库

springboot 配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:# 主库数据源master:driverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx:3306/dbName?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertTo…

games101 作业1及作业2分析及解决

games101 作业1及作业2分析及解决 去年的时候把games101的课程以及作业完成,但是整个过程比较粗略,也借助了不少外界的力量(doge),于是最近准备抽几天集中再把作业(1-7)过一遍,常看常新嘛 环境配置直接用:https://github.com/roeas/GAMES101-Premake 之前是在虚拟机上…

ComfyUI插件:ComfyUI_Noise节点

前言: 学习ComfyUI是一场持久战,ComfyUI_Noise是对ComfyUI中的噪声进行控制的一个插件库,该库可以完成图像噪声的反推,并通过采样再以几乎无损的方式返回原图,通过该库的使用可以更好的帮助图像恢复原始的相貌,非常适合在生成视频领域用作人物转绘使用。祝大家学习顺利,…

初学Java5

对Java的基础内容有了一定的了解,学习编写一个比较全面的练习题:

远程控制游戏软件,ToDesk低延迟安全又稳定

远程控制软件极大程度方便了打工人的办公需求,但有时想要用来远程打打游戏,上游戏做一下日常签到之类的任务,普通的远控软件的配置却无法匹配,不是画质不够高清,就是延迟太高画面卡顿容易掉线。 这时候还是需要专业选手上场,比如ToDesk远程控制的游戏版。小社长使用了一段…

掀起云端革命!ToDesk云电脑与传统PC电脑的差异分析

在科技日新月异的今天,传统PC电脑的市场地位正悄然发生变化。随着云计算技术的不断成熟与普及,云电脑逐渐走进大众视野,不同于传统PC电脑的高昂的成本和易退化的硬件性能,云电脑正以其轻成本高性能的优势吸引来越来越多的用户。其中ToDesk云电脑的推出更是掀起了云端革命的…

浏览器标签页多行显示:使用Floorp浏览器 最先进的跨平台 Firefox 衍生品 开源之光

浏览器打开了很多标签页,查看需要滚动 这查找效率就不是O(1)了,比如在编辑器中标签页直接多行显示 找了解决方案 平常的主力浏览器是Firefox chrome safari firefox firefox之前有拓展Tab Mix可以用,现在弄得跟孙子似得,官方拓展不承认还要安装还要好的步骤,也没成功 还有…

怎么远程控制其他电脑手机?ToDesk轻松搞定!

远程控制电脑和手机一般是通过互联网或者局域网,将相隔两地的设备进行远控连接,主控设备可以操控被控设备的屏幕文件鼠标等等。 这种技术极大的方便了用户线上办公和日常生活,让用户可以在不同地点的电脑手机上进行远程办公、软件安装、故障排查等操作。本文小社长将介绍远程…