本文介紹基於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
次。
至此,大功告成。