Excel 列未正确合并。不覆盖空白列

Excel 列未正确合并。不覆盖空白列,excel,python-3.x,pandas,Excel,Python 3.x,Pandas,在python中合并.xlsx文件/工作表时,它会将数据放在空列下面。 见下面的例子 我尝试了几种不同的方法来合并文件,但都是这样合并的 excel_files= [src_code,dst_code] df = pd.concat([pd.read_excel(f) for f in excel_files]) df.to_csv(filtered_comb_excel,index=False) ColumnA ColumnB ColumnC

在python中合并.xlsx文件/工作表时,它会将数据放在空列下面。 见下面的例子

我尝试了几种不同的方法来合并文件,但都是这样合并的

excel_files= [src_code,dst_code]

df = pd.concat([pd.read_excel(f) for f in excel_files])
df.to_csv(filtered_comb_excel,index=False)

      ColumnA             ColumnB       ColumnC       ColumnD
       Data                Data 
       DAta                Data          
       DAta                Data          
                                         Data          DAta
                                         Data          Data
一个文件在A列和B列中有数据,另一个文件在C列和D列中有数据。 我基本上希望C列从第1行开始放入C列,与A、B和D相同:

 ColumnA             ColumnB       ColumnC       ColumnD
       Data            Data         Data          Data
       DAta            Data         Data          Data
       DAta            Data         DAta          DAta

如果数据帧具有唯一密钥,则可以尝试:

 df = reduce(lambda left,right: pd.merge(left,right,on='key'), excel_files)
或者你的df的一些变体

 df = reduce(lambda left,right: pd.merge(left,right,right_on='rightkey', left_on='leftkey'), excel_files)

如果您的数据帧具有唯一密钥,则可以尝试:

 df = reduce(lambda left,right: pd.merge(left,right,on='key'), excel_files)
或者你的df的一些变体

 df = reduce(lambda left,right: pd.merge(left,right,right_on='rightkey', left_on='leftkey'), excel_files)

在没有看到dfs的情况下不确定。

您可以尝试使用
reset\u index
然后使用
axis=1进行concat

df = pd.concat([pd.read_excel(f).reset_index(drop=True) for f in excel_files],axis=1)

您可以尝试使用
reset_index
,然后使用
axis=1

df = pd.concat([pd.read_excel(f).reset_index(drop=True) for f in excel_files],axis=1)

尝试
pd.concat([pd.read\u excel(f).reset\u index(drop=True)用于excel\u文件中的f,axis=1)
尝试
pd.concat([pd.read\u excel(f).reset\u index(drop=True)用于excel\u文件中的f,axis=1)
看起来效果不错。我现在需要研究一些奇怪的地方,看看它是否与我的其他代码有关。例如:将数据放在列C、D、E、F中,标题放在A、B、G、H中,而不仅仅是将数据放在A、B、C、D中。看起来源Excel的第一行中可能缺少数据。看起来效果不错。我现在需要研究一些奇怪的地方,看看它是否与我的其他代码有关。例如:将数据放在列C、D、E、F中,标题放在A、B、G、H中,而不仅仅是将数据放在A、B、C、D中。看起来源Excel的第一行中可能缺少数据。