2016-12-12 5 views
0

Ich habe zwei Excel-Sheets, sheet1 und sheet2. Sheet1 hat die row id, First name, Last name, Description Spalten usw. Sheet2 hat auch eine Spalte, die die First name speichert, Last name, und auch zwei weitere Säulen, column D und column E, dass Bedarf in der Spalte Beschreibung zusammengeführt werden.Excel-Merge-Zellen, von 2 Blatt mit Python Pandas

Die Kombination von First name, Last name, existiert nur einmal in beiden Blättern.

Wie könnte ich den Inhalt der Spalte D, E aus Blatt 2 in Spalte namens Beschreibung in Blatt 1 zusammenführen, basierend auf den übereinstimmenden Kriterien Vorname und Nachname sind in Zeile von Blatt 1 und Blatt 2 gleich , mit Python Pandas?

Blatt 1:

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

Blatt 2:

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

Ausgang: Blatt 1:

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

Wir brauchen ein Beispiel. Siehe [MCVE]. – IanS

Antwort

0

Ich glaube, Sie auf diese aussehen sollte. Aber das ist hauptsächlich für den Kontext.

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

Ich denke, Ihr Problem kocht wirklich unten zu diesem.

>>> !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 

wir diese in Objekte lesen konnte genannt Datenrahmen (man denke an sie irgendwie wie Excel-Tabellen):

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

Und dann können wir sie auf der ID-Spalte fusionieren:

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

Danach könnten wir es in eine CSV-Datei oder in eine Excel-Datei speichern:

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

Von ... hier ...

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

Verwandte Themen