繁体   English   中英

使用 python 将列从一个 excel 文件复制到另一个 excel 文件表

[英]Copy columns from one excel file to another excel file sheet using python

我有两张 excel 表格,我正在尝试使用 pandas 将内容从一张 excel 表格复制到另一张表格。

First_excel 工作表 -

Name    Class   City    Date    Misc    Misc2   Blank Col
                 AA             xxx      12      --
                 AA             xx       32      --
                 BB             yyyyy    54      --
                 BB             zz       23      -- 
                 CC             yy       54      --
                 CC             ww       32      --

Second_excel 工作表 -

Name    Class   Date    City
Tom     Q,W   01-11-20   AA
Jerry   W     05-03-19   AA
Don     E,R   06-05-20   BB
Rob     T,Y   02-01-20   BB
Mike    W     05-03-18   CC
Ann     O,p   04-09-20   CC

最终预期表 -

Name    Class   City    Date    Misc    Misc2   Blank Col
Tom     Q,W     AA   01-11-20   xxx     12       --
Jerry   W       AA   05-03-19   xx      32       --
Don     E,R     BB   06-05-20   yyyyy   54       --
Rob     T,Y     BB   02-01-20   zz      23       --
Mike    W       CC   05-03-18   yy      54       --
Ann     O,p     CC   04-09-20   ww      32       --



df1 = pd.read_excel("new_excel_file.xlsx", sheet_name = "Sheet1")
df2 = pd.read_excel("new_excel_file.xlsx", sheet_name = "Sheet2")
result = pd.concat([df1,df2])

这是我得到的结果 dataframe

    Name    Class   City    Date        Misc    Misc2   Blank Col   
0   NaN     NaN     AA      NaT         xxx     12.0    --          
1   NaN     NaN     AA      NaT         xx      32.0    --          
2   NaN     NaN     BB      NaT         yyyyy   54.0    --          
3   NaN     NaN     BB      NaT         zz      23.0    --          
4   NaN     NaN     CC      NaT         yy      54.0    --          
5   NaN     NaN     CC      NaT         ww      32.0    --          
0   Tom     Q,W     AA      2020-11-01  NaN     NaN     NaN         
1   Jerry   W       AA      2019-03-05  NaN     NaN     NaN         
2   Don     E,R     BB      2020-05-06  NaN     NaN     NaN         
3   Rob     T,Y     BB      2020-01-02  NaN     NaN     NaN         
4   Mike    W       CC      2018-03-05  NaN     NaN     NaN         
5   Ann     O,p     CC      2020-09-04  NaN     NaN     NaN         

我的想法是用df2或 second_excel 在他们的位置上的实际值替换NaN 请帮我得到我预期的 output。

您可以使用fillna合并具有相同名称的两列,然后 append 最后一列。 首先加载文件:

df1 = pd.read_excel("new_excel_file.xlsx", sheet_name = "Sheet1")
df2 = pd.read_excel("new_excel_file.xlsx", sheet_name = "Sheet2")

用 df2 填充 df1 中的空列:

fill = df1.fillna(df2[['Name', 'Class', 'Date']])

然后加入最后一列:

result = teste.join(df2[['City']])

编辑

由于您编辑了帖子,只需使用fill = df1.fillna(df2)

output:

    Name Class  City                 Date   Misc  Misc2 Blank Col 
0    Tom   Q,W    AA  2020-11-01 00:00:00    xxx     12        -- 
1  Jerry     W    AA  2019-03-05 00:00:00     xx     32        -- 
2    Don   E,R    BB  2020-05-06 00:00:00  yyyyy     54        --  
3    Rob   T,Y    BB  2020-01-02 00:00:00     zz     23        --  
4   Mike     W    CC  2018-03-05 00:00:00     yy     54        --  
5    Ann   O,p    CC  2020-09-04 00:00:00     ww     32        --  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM