2017-02-08 39 views
1

需要一些幫助,以便從csv文件名中提取日期並將其加載到列中。從csv文件名中提取日期並將其加載到列中的配置單元表中-python pandas spark

輸入文件= ABC_XYZ_EXPORT-20170101.csv,ABC_XYZ_EXPORT-20170102.csv

我能夠同時讀取環路中的文件,但日期被提取了一次,並且是靜態的所有記錄在兩個不同的文件。 我不確定,但由於循環不正確,這可能會很好。請幫忙。 在此先感謝。

for input_file in allFiles: 
    exc_date = input_file 
    exc_date = re.sub('ABC_XYZ_EXPORT-+([0-9]+)[.]csv$', r'\1', exc_date) 
    #print(exc_date) 
    #PD pandas dataframe 
    for d in exc_date: 
     csv_input = pd.concat((pd.read_csv(f) for f in allFiles)) 
     csv_input['Load_date'] = exc_date 
     csv_input.to_csv('outputpd.csv') 

回答

0

IIUC,您需要從多個文件中讀取數據,並將Load_Date列指定爲文件名中的日期。

allFiles = ['ABC_XYZ_EXPORT-20170101.csv' , 'ABC_XYZ_EXPORT-20170102.csv'] 

csv_input =pd.DataFrame() 

for input_file in allFiles: 
    #Loop through each file 
    exc_date = input_file 
    exc_date = re.sub('ABC_XYZ_EXPORT-+([0-9]+)[.]csv$', r'\1', exc_date) 
    df=pd.read_csv(input_file) 
    df['Load_date'] = exc_date #Add date for that file alone 
    csv_input.append(df) # append to previously read data 

csv_input.to_csv('outputpd.csv') #Creates a single output file with contents from all files. 
+0

謝謝四條,它像一個小變化的魅力工作。 – Sal

+0

對不起錯過了小改動描述 - csv_input = csv_input.append(df)#追加到先前讀取的數據 只好把它放入一個變量中,將它加載到最後一行的.csv中。否則它會爲我創建一個空的csv。再次感謝。 – Sal

相關問題