關于這項任務的一些背景知識:我根據上周的日期將一系列 csv 檔案相互附加,這給了我檔案newData.csv。我需要將此附加到存盤在oldData.xlsx中的先前資料,以便它位于舊資料的下方。
生成 newData 的代碼
df1 = pd.read_csv(fName0)
#subtracted_date = pd.to_datetime(openDate) - timedelta(days=8)
#subtracted_date = subtracted_date.strftime("%d/%m/%Y")
Previous_Date = datetime.datetime.today() - datetime.timedelta(days=7)
Previous_Date_Formatted = Previous_Date.strftime ('%#d/%#m/%Y') # format the date to ddmmyyyy
print(Previous_Date_Formatted)
df1.insert(0,'Date','')
df1['Date'] = Previous_Date_Formatted
df_Kwai = df1[df1['Portfolio'].str.contains("Kwai")==True]
df_Kwai.to_csv('newData.csv', mode='a', index = False, header=False)
下載的 csv 檔案本身不帶有日期列,因此我根據 timedelta 函式添??加了一個。過去 7 天的完整 csv 與它需要加入的 oldData 檔案具有完全相同的列。
然后將 oldData 檔案打開到一個新的資料框中,然后我嘗試將它們附加在一起。
newData = pd.read_csv (r'newData.csv')
oldData = pd.read_excel(r"oldData.xlsx")
combinedData = pd.concat([oldData, newData], ignore_index=True)
combinedData.to_excel (r'Kwai-All Data.xlsx', index = None, header=True)
print("Kwai excel file created successfully")
這確實將資料附加在一起,但是資料已被推到一個新列然后附加,所以我在 newData 之前有一個空單元格的集合。我在下面創建了最終結果的簡單表示。
Date col1 col2 col3 col4 col5 02/01/2022 0 0 0 vvv
01/01/2022 0 0 0 abc def
01/01/2022 1 1 1 ggg fff
01/01/2022 2 2 4 fff ooo
01/01/2022 3 3 5 hhh uuu
02/01/2022 0 0 0 rrr
03/01/2022 0 0 0 sss
我已經使用一些占位符檔案嘗試了相同的代碼,使其能夠正常運行。我的猜測是錯誤出在 newData.csv 檔案的創建中,但我找不到錯誤的來源。
任何幫助將不勝感激,因為我對熊貓還很陌生。
uj5u.com熱心網友回復:
我不太確定,但從結果的概述來看,資料框似乎有不同的列名(熊貓根據列名追加)。如果列在兩個資料框中以相同的順序出現(假設它們也有相同數量的列,但事實并非如此),您可以像這樣重命名第二個的列:
newData.columns = oldData.columns
然后追加。希望能幫助到你!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/484695.html
下一篇:更改excel中的列和行
