我對 Python 和 Pandas 等(輕松一點)還很陌生,到目前為止,我已經花了整整幾天的時間研究如何做到這一點,但沒有成功。這里是專案。
為 2 個不同的資料點創建了兩個不同的 .CSV,每個資料點都有一個運行總計(以最后一行中特定資料的當天總計結束)。例如, in 4_23_2022_Data1.csv, 具有列Date和Data1, in 4_23_2022_Data2.csv, 具有列Dateand Data2, 每個 .csv 中的最后一行包含當天的日期(顯然)和該資料的總計(Data1 或 Data2 列)。
我想要完成的是:讀取包含 2 組資料 .csv(多天)的目錄,并創建一個包含“日期”、“資料 1”、“資料 2”列的組合 .CSV,與集合的 Data1 和 Data2 顯示在該特定日期的相應行中。[創建這些 .csv 的主要系統最初無法將 Data1 和 Data2 合并到 1 個 .csv 中,因此我正在嘗試創建一個可以快速掃描并執行此操作的程式。]
我最初的編碼嘗試只觸及表面(并且不考慮任何回圈):
df_1 = pd.read_csv('04_23_2022_Data1.csv', usecols = ['Date','Data1'])
df_2 = pd.read_csv('04_23_2022_Data2.csv', usecols = ['Date','Data2'])
##the last line of the day is 538
Data1_date = df1_read.iloc[538]['Date']
Data1_value = df1_read.iloc[538]['Data1']
Data2_date = df2_read.iloc[538]['Date']
Data2_value = df2_read.iloc[538]['Data2']
df_export = pd.DataFrame(columns = ['Date','Data1','Data2'])
df_export.at[1, 'Date'] = Data1_date
df_export.at[1, 'Data1'] = Data1_value
df_export.at[1, 'Data2'] = Data2_value
df_export.to_csv('Combo_of_Data1_and_Data2_per_Date.csv')
任何幫助或進一步的指導將不勝感激。再次,對于這個問題的完整新手攻擊感到抱歉,但我正在嘗試。:)
uj5u.com熱心網友回復:
您可以使用glob.glob() 遍歷檔案夾中的檔案。并使用 Python 內置函式iter()和zip()成對地遍歷檔案。
# import
import glob
# define folder path
# look for files ending in '.csv' only
path = r'\data_folder\*.csv'
# loop through folder and store all relevant files as a list
file_paths = glob.glob(path)
# iterate through list to get elements in pairs
iterable_list = iter(file_paths)
# zip pairs of elements
iterable_list = zip(iterable_list, iterable_list)
# loop through list of files in pairs and do stuff...
for file_one, file_two in pair_elements(file_paths):
df_1 = pd.read_csv(file_one)
df_2 = pd.read_csv(file_two)
# do stuff
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465305.html
