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

时间:2019-03-27 23:24:55

标签: 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       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

2 个答案:

答案 0 :(得分:1)

如果数据框具有唯一键,则可以尝试:

 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。

答案 1 :(得分:1)

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

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