我正在撰寫一個 python 腳本來從一個檔案夾中讀取多個 csv 檔案。我需要根據一列(第三列)中存在的值合并 csv 檔案并從中創建新的 csv 檔案。
例如:我有 3 個 csv 檔案,如下所示:
?csv 1: csv 2: csv 3:
2 4 1994 4 4 1995 2 4 1997
2 4 1994 0 4 1995 2 4 1997
9 0 1994 9 6 1995 9 0 1998
6 7 1994 6 9 1996 6 7 1998
6 4 1995 4 2 8 1969
36 1997 6 3 1998
6 5 1995 0 5 1997 6 5 1999
8 7 1995 7 8 1997 8 7 1999
輸出應如下所示:
?O/P 1: O/P 2: O/P 5:
2 4 1994 6 4 1995 9 0 1998
2 4 1994 6 3 1995 6 7 1998
9 0 1994 6 5 1995 6 4 1998
6 7 1994 8 7 1995 6 3 1998
???????????4 4 1995 6 1
???????????4
???????????1995
?O/P 3: O/P 4: O/P 6:
6 9 1996 4 1 1997 6 5 1999
4 2 1996 0 5 1997 8 7 1999
???????????7 8 1997
如果有人幫我解決這個問題,我將不勝感激!任何建議都會非常有幫助。
謝謝。
uj5u.com熱心網友回復:
我使用 glob 自動搜索 .csv 檔案,但如果它們已經在某個變數中初始化,您可以合并它們并僅使用for year in all_csv['YEAR'].unique()...
import pandas as pd
import glob
path = "/home/gustavo/" # path your csv files are (in my example is store in /home/gustavo)
all_csv = pd.DataFrame()
for file in glob.glob(path "*.csv") : # *.csv search for all csv files in path
all_csv = all_csv.append(pd.read_csv(file, header = None), ignore_index = True)
all_csv = all_csv.rename(columns = {0 : 'A', 1 : 'B', 2 : 'YEAR'})
# Filter for each year value and transform to csv
for year in all_csv['YEAR'].unique() :
all_csv[all_csv['YEAR'] == year].to_csv(f'{year}.csv', index=False)
輸出 :

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441863.html
