本文介紹基於Python語言,讀取Excel表格文件數據,並基於其中某一列數據的值,將這一數據處於指定範圍的那一行加以複製,並將所得結果保存為新的Excel表格文件的方法~ ...
本文介紹基於Python語言,讀取Excel表格文件數據,並基於其中某一列數據的值,將這一數據處於指定範圍的那一行加以複製,並將所得結果保存為新的Excel表格文件的方法。
首先,我們來明確一下本文的具體需求。現有一個Excel表格文件,在本文中我們就以.csv
格式的文件為例;其中,如下圖所示,這一文件中有一列(也就是inf_dif
這一列)數據比較關鍵,我們希望對這一列數據加以處理——對於每一行,如果這一行的這一列數據的值在指定的範圍內,那麼就將這一行複製一下(相當於新生成一個和當前行一摸一樣數據的新行)。
知道了需求,我們就可以開始代碼的書寫。其中,本文用到的具體代碼如下所示。
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 6 22:04:48 2023
@author: fkxxgis
"""
import pandas as pd
df = pd.read_csv(r"E:\Train_Model.csv")
result_df = pd.DataFrame()
for index, row in df.iterrows():
value = row["inf_dif"]
if value <= -0.1 or value >= 0.1:
for i in range(10):
result_df = result_df.append(row, ignore_index=True)
result_df = result_df.append(row, ignore_index=True)
result_df.to_csv(r"E:\Train_Model_Oversampling_NIR_10.csv", index=False)
其中,上述代碼的具體介紹如下。
首先,我們需要導入所需的庫;接下來,我們使用pd.read_csv()
函數,讀取我們需要加以處理的文件,並隨後將其中的數據存儲在名為df
的DataFrame格式變數中。接下來,我們再創建一個空的DataFrame,名為result_df
,用於存儲處理後的數據。
隨後,我們使用df.iterrows()
遍歷原始數據的每一行,其中index
表示行索引,row
則是這一行具體的數據。接下來,獲取每一行中inf_dif
列的值,存儲在變數value
中。
此時,我們即可基於我們的實際需求,對變數value
的數值加以判斷;在我這裡,如果value
的值小於等於-0.1
或大於等於0.1
,則就開始對這一行加以複製;因為我這裡需要複製的次數比較多,因此就使用range(10)
迴圈,將當前行數據複製10
次;複製的具體方法是,使用result_df.append()
函數,將複製的行添加到result_df
中。
最後,還需要註意使用result_df.append()
函數,將原始行數據添加到result_df
中(這樣相當於對於我們需要的行,其自身再加上我們剛剛複製的那10
次,一共有11
行了)。
在最後一個步驟,我們使用result_df.to_csv()
函數,將處理之後的結果數據保存為一個新的Excel表格文件文件,並設置index=False
,表示不保存行索引。
運行上述代碼,我們即可得到結果文件。如下圖所示,可以看到結果文件中,符合我們要求的行,已經複製了10
次,也就是一共出現了11
次。
至此,大功告成。