Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)
本文介紹基于Python語(yǔ)言,讀取Excel表格文件,基于我們給定的規(guī)則,對(duì)其中的數(shù)據(jù)加以篩選,將不在指定數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)剔除,保留符合我們需要的數(shù)據(jù)的方法。
首先,我們來(lái)明確一下本文的具體需求?,F(xiàn)有一個(gè)Excel表格文件(在本文中我們就以.csv格式的文件為例),如下圖所示。

其中,Excel表格文件具有大量的數(shù)據(jù),每一列表示某一種屬性,每一行表示某一個(gè)樣本;我們需要做的,就是對(duì)于其中的部分屬性加以數(shù)據(jù)篩選——例如,我們希望對(duì)上圖中第一列的數(shù)據(jù)進(jìn)行篩選,將其中大于2或小于-1的部分選出來(lái),并將每一個(gè)所選出的單元格對(duì)應(yīng)的行直接刪除;同時(shí),我們還希望對(duì)其他的屬性同樣加以篩選,不同屬性篩選的條件也各不相同,但都是需要將不符合條件的單元格所在的整行都刪除。最終,我們保留下來(lái)的數(shù)據(jù),就是符合我們需要的數(shù)據(jù),此時(shí)我們需要將其保存為一個(gè)新的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)
下面是對(duì)上述代碼每個(gè)步驟的解釋:
- 導(dǎo)入必要的庫(kù):導(dǎo)入了
pandas庫(kù),用于數(shù)據(jù)處理和操作。 - 定義文件路徑:定義了原始文件路徑
original_file和結(jié)果文件路徑result_file。 - 讀取原始數(shù)據(jù):使用
pd.read_csv()函數(shù)讀取原始文件數(shù)據(jù),并將其存儲(chǔ)在DataFrame對(duì)象df中。 - 數(shù)據(jù)篩選:對(duì)DataFrame對(duì)象
df進(jìn)行多個(gè)條件的篩選操作,使用了邏輯運(yùn)算符&和比較運(yùn)算符進(jìn)行條件組合。例如,其中的第一行df["inf"] >= -0.2和df["inf"] <= 18就表示篩選出"inf"列的值在-0.2到18之間的數(shù)據(jù);第二行df["NDVI"] >= -1和df["NDVI"] <= 1則表示篩選出"NDVI"列的值在-1到1之間的數(shù)據(jù),以此類推。 - 保存結(jié)果數(shù)據(jù):使用
to_csv()函數(shù)將篩選后的DataFrame對(duì)象df保存為新的.csv文件,保存路徑為result_file,并設(shè)置index=False以避免保存索引列。
當(dāng)然,如果我們需要對(duì)多個(gè)屬性(也就是多個(gè)列)的數(shù)據(jù)加以篩選,除了上述代碼中的方法,我們還可以用如下所示的代碼,較之前述代碼會(huì)更方便一些。
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)]上述代碼可以直接對(duì)DataFrame對(duì)象加以一次性的篩選,不用每篩選一次就保存一次了。
運(yùn)行本文提及的代碼,我們即可在指定的結(jié)果文件夾下獲得數(shù)據(jù)篩選后的文件了。
到此這篇關(guān)于Python按條件刪除Excel表格數(shù)據(jù)的方法的文章就介紹到這了,更多相關(guān)Python 刪除Excel表格數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python 刪除excel表格重復(fù)行,數(shù)據(jù)預(yù)處理操作
- Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)查詢結(jié)果導(dǎo)出到Excel
- python使用openpyxl庫(kù)讀取Excel文件數(shù)據(jù)
- python中將數(shù)據(jù)生成為Excel文件的5種方法舉例
- Python實(shí)現(xiàn)提取JSON文件中指定數(shù)據(jù)并保存至CSV或Excel內(nèi)
- 如何在Python中導(dǎo)入EXCEL數(shù)據(jù)
- 如何利用Python讓Excel快速按條件篩選數(shù)據(jù)
- 詳解Python如何實(shí)現(xiàn)對(duì)比兩個(gè)Excel數(shù)據(jù)差異
相關(guān)文章
python使用reportlab實(shí)現(xiàn)圖片轉(zhuǎn)換成pdf的方法
這篇文章主要介紹了python使用reportlab實(shí)現(xiàn)圖片轉(zhuǎn)換成pdf的方法,涉及Python使用reportlab模塊操作圖片轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Python腳本實(shí)現(xiàn)自動(dòng)發(fā)帶圖的微博
這篇文章主要介紹了Python腳本實(shí)現(xiàn)自動(dòng)發(fā)帶圖的微博的相關(guān)資料,需要的朋友可以參考下2016-04-04
Python的Django框架中設(shè)置日期和字段可選的方法
這篇文章主要介紹了Python的Django框架中設(shè)置日期和字段可選的方法,是Django設(shè)置當(dāng)中的基本操作,需要的朋友可以參考下2015-07-07
python虛擬機(jī)之描述器實(shí)現(xiàn)原理與源碼分析
在本篇文章當(dāng)中主要給大家介紹描述器背后的實(shí)現(xiàn)原理,通過(guò)分析?cpython對(duì)應(yīng)的源代碼了解與描述器相關(guān)的字節(jié)碼的指令,我們就可以真正了解到描述器背后的原理,需要的朋友可以參考下2023-05-05
python 圖像處理畫一個(gè)正弦函數(shù)代碼實(shí)例
這篇文章主要介紹了python 圖像處理畫一個(gè)正弦函數(shù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09

