是什么导致此 panda.concat 行为异常

What is causing this panda.concat to behave strangely

关于这个任务的一些背景知识:我已经根据上周的日期将一系列 csv 文件附加到彼此,这给了我文件 newData.csv。我需要将其附加到存储在 oldData.xlsx 中的先前数据,以便它位于旧数据的下方。

生成新数据的代码

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 与需要加入的旧数据文件具有完全相同的列。

然后将旧数据文件打开到一个新的数据框中,然后我尝试将它们附加在一起。

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 文件的创建过程中,但我找不到错误的源头。

任何帮助将不胜感激,因为我对 pandas 还是很陌生。

我不太确定,但从结果的概览来看,数据框似乎具有不同的列名(pandas 根据列名附加)。如果列在两个数据框中以相同的顺序出现(假设它们也具有相同数量的列,但看起来并非如此),您可以像这样重命名第二个列:

newData.columns = oldData.columns

然后追加。希望对您有所帮助!