簡體   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