Excel使用Python Pandas从2张表中合并单元格

时间:2016-12-12 14:30:32

标签: python excel pandas

我有两张Excel表格,sheet1sheet2。 Sheet1包含row idFirst nameLast nameDescription列等.Pheet2还有一个存储First nameLast name的列,还有两个其他列column Dcolumn E,需要在“描述”列中合并。

First nameLast name的组合在两张纸中只存在一次。

如何根据匹配条件合并工作表1中第2页的D,E列,名称为Description的列,根据匹配条件,第1名和姓氏在第1页和第2页的行中相等,使用Python熊猫?

表1:

ID | columnB  | column C | Column D 
1  | John     | Hingins  | Somedescription

表2:

ID | column Z | column X | Column Y     | Column W
1  | John     | Hingins  | description2 | Somemoredescription

输出: 第1页:

ID | columnB  | column C | Column D
1  | John     | Hingins  | description2-separator-Someotherdescription-separator-Somedescription

1 个答案:

答案 0 :(得分:1)

我认为你应该看看这个。但这主要是出于背景。

http://pbpython.com/excel-file-combine.html

我认为您的问题实际上归结为此。

>>> !cat scores3.csv
ID,JanSales,FebSales
1,100,200
2,200,500
3,300,400
>>> !cat scores4.csv
ID,CreditScore,EMMAScore
2,good,Watson
3,okay,Thompson
4,not-so-good,NA

我们可以将这些内容读入名为DataFrames的对象(想想它们有点像Excel工作表):

>>> import pandas as pd
>>> s3 = pd.read_csv("scores3.csv")
>>> s4 = pd.read_csv("scores4.csv")
>>> s3
   ID  JanSales  FebSales
0   1       100       200
1   2       200       500
2   3       300       400
>>> s4
   ID  CreditScore EMMAScore
0   2         good    Watson
1   3         okay  Thompson
2   4  not-so-good       NaN

然后我们可以在ID列上合并它们:

>>> merged = s3.merge(s4, on="ID", how="outer")
>>> merged
   ID  JanSales  FebSales  CreditScore EMMAScore
0   1       100       200          NaN       NaN
1   2       200       500         good    Watson
2   3       300       400         okay  Thompson
3   4       NaN       NaN  not-so-good       NaN

之后我们可以将其保存到csv文件或Excel文件中:

>>> merged.to_csv("merged.csv")
>>> merged.to_excel("merged.xlsx")

...从这里...

Looking to merge two Excel files by ID into one Excel file using Python 2.7