我正在嘗試使用 python 查看目錄檔案夾并匹配檔案名中具有相同字串的檔案。此檔案夾中的每個感興趣的檔案都是一個“.csv”檔案,其中包含一個值列,Value_Blue用于藍色檔案和Value_Red紅色檔案。此檔案夾中的檔案依次為:Blue_111.csv、Blue_124.csv、Blue_145.csv、Blue_165.csv、Blue_176.csv...,然后是:Red_111.csv、Red_124.csv、Red_145.csv、Red_165.csv、Red_176。 csv ...等等。如圖所示,與這些檔案中的每一個相關聯的數字并不按相等的間隔順序排列,但這在這里無關緊要。對于大多數藍色檔案,有一個匹配的紅色檔案,檔案名附加了相同的編號擴展名。因此,有些藍色檔案沒有對應的紅色檔案。
我要做的是遍歷目錄檔案夾中的所有藍色檔案,將它們作為資料幀打開,然后找到匹配的紅色檔案,將該檔案作為資料幀打開,然后Value將這兩個資料幀中的列相乘,然后然后將該新資料幀發送到一個新的 .csv 檔案,其檔案名包含相同的擴展名。
例如,如果在回圈中它以 Blue_111.csv 開頭,那么我希望它找到 Red_111.csv。我希望這兩個 .csv 檔案都作為資料框打開,并且Value列成倍增加。然后我想將這個新計算的資料幀發送到一個名為“Green_111.csv”的新 .csv,然后繼續回圈到 Blue_124.csv 等。
這是示例我的目標的偽代碼:
folder = Path/to/Directory/Folder
for f in folder that is a .csv with "Blue" in filename:
blue_df = pd.read_csv(f)
red = matching Red file
red_df = pd.read_csv(red)
green_df = blue_df.join(red_df)
green_df = green_df['Value_Blue'] * green_df['Value_Red']
green_df.to_csv(Path/to/Directory/Folder/Green_*matching_number*.csv)
如何匹配檔案,然后在檔案名中創建具有相同匹配擴展名的計算輸出檔案?
uj5u.com熱心網友回復:
用于glob.glob()匹配與通配符模式匹配的所有檔案名。然后您可以使用.replace()替換Blue和創建其他檔案名。RedGreen
import glob, os
folder = 'Path/to/Directory/Folder'
for blue in glob.glob(os.path.join(folder, "Blue_*.csv")):
blue_df = pd.read_csv(blue)
red = blue.replace("Blue_", "Red_")
green = blue.replace("Blue_", "Green_")
red_df = pd.read_csv(red)
green_df = blue_df.join(red_df)
green_df = green_df['Value_Blue'] * green_df['Value_Red']
green_df.to_csv(green)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421917.html
標籤:
