【问题标题】:Concat 2 excel files to a new excel file using Python使用 Python 将 2 excel 文件连接到新的 excel 文件
【发布时间】:2018-02-07 16:42:40
【问题描述】:

Excel文件1:

ColumnA   ColumnB    ColumnC
1.        ice        Chicken
2.        ice        Butter
3.        ice        Mutton
4.        fire       Spinach
5.        fire       Beef 
6.        fire       Cucumber
7.        fire       Egg

Excel 文件 2:

ColumnA    ColumnB   
ice        Mutton
fire       Egg

我有 2 个 Excel 文件。使用 python 我想将两个 excel 文件组合在一起,看起来像这样:

ColumnA   ColumnB    ColumnC    ColumnD
1.        ice        Chicken    Mutton
2.        ice        Butter     Mutton
3.        ice        Mutton     Mutton
4.        fire       Spinach    Egg
5.        fire       Beef       Egg
6.        fire       Cucumber   Egg
7.        fire       Egg        Egg

我最终想要的是创建一个新的 excel 文件,其中包含 excel 文件 1 的所有 3 列,并且 ONLY excel 文件 2 的 B 列基于 A 列的值类似于 excel 文件 1 B 列。这个新列将是 D 列。

我搜索了几个小时才得到如何比较两个 excel 文件以删除差异。任何帮助,将不胜感激。

【问题讨论】:

  • 到目前为止你写了什么代码?
  • 其实问题已经被@jezrael 解决了。谢谢查理:D

标签: excel python-3.x pandas openpyxl xlsxwriter


【解决方案1】:

我认为您首先需要read_excelDataFrames,然后是map,最后是to_excel

import pandas as pd 

df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')

s = df2.set_index('ColumnA')['ColumnB']
print (s)
ColumnA
ice     Mutton
fire       Egg
Name: ColumnB, dtype: object

df1['ColumnD'] = df1['ColumnB'].map(s)
print (df1)
   ColumnA ColumnB   ColumnC ColumnD
0      1.0     ice   Chicken  Mutton
1      2.0     ice    Butter  Mutton
2      3.0     ice    Mutton  Mutton
3      4.0    fire   Spinach     Egg
4      5.0    fire      Beef     Egg
5      6.0    fire  Cucumber     Egg
6      7.0    fire       Egg     Egg


df1.to_excel('file3.excel',index=False)

【讨论】:

  • 感谢 jezrael 的及时回复。但我不明白。我需要导入什么?
  • ahhh ic 你的意思是 import pandas as pd 但我得到 NaN 列 D 羊肉蛋很好 另外如何删除第一列中的 0123456
  • 嗯,我认为ice 在一个或第二个 excel 文件中有一些空格,例如 ' ice',所以不要匹配并获取 NaN。可以查一下吗?
  • 哇!!非常感谢!!快速响应并解决问题!非常感谢你让我开心!谢谢!!! :D
  • Superrrrr。太棒了,我真的很高兴能帮助你!美好的一天!
猜你喜欢
  • 2018-06-22
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多