2017-09-04 1 views
1

Ich versuche, einen Datenrahmen mit Pandas zu erstellen, aber ich habe Probleme wegen der Struktur des Datasets.Holen Sie Zellen in Excel, um mit Zellen in verschiedenen Zeilen mit Python zu verschmelzen?

Die Kopfzeilen meines Datensatzes sind in zwei verschiedene Zeilen aufgeteilt. Mein Problem besteht darin, diese Zeilen zusammenzuführen, indem jede Zelle mit der darunter liegenden Zelle zusammengeführt wird.

Dies ist ein Beispiel dafür, was meine Daten-Set aussieht -

Client 1  | Client 2 
------------ | ------------ 
Grand Total | Grand Total 
------------ | ------------ 
$50   | $100 

Was ich versuche zu tun -

Client 1 Grand Total | Client 2 Grand Total 
-------------------- | -------------------- 
$50     | $100 

Alles, was ich Online-Gespräche über Zusammenführen von Daten in mehreren Reihen auf einem gefundenen einzelne Zeile, aber nicht über das Zusammenführen der Zellen in verschiedenen Zeilen.

Wie kann ich Zellen mit anderen Zellen in verschiedenen Zeilen zusammenführen? Ich suche offensichtlich nach einer Lösung, bei der ich den eigentlichen Datensatz nicht bearbeite. Mehr noch, eine Lösung, bei der ich keine Header kodieren muss.

Antwort

0

Sie müssen columns von MultiIndex erstellen. Wenn alle Werte Zeichenfolgen sind, ist map:

df = pd.DataFrame({('Client 1', 'Grand Total'): {0: '$50'}, 
        ('Client 2', 'Grand Total'): {0: '$100'}}) 

print (df) 
    Client 1 Client 2 
    Grand Total Grand Total 
0   $50  $100 

print (df.columns) 
MultiIndex(levels=[['Client 1', 'Client 2'], ['Grand Total']], 
      labels=[[0, 1], [0, 0]]) 

df.columns = df.columns.map(' '.join) 

print (df) 
    Client 1 Grand Total Client 2 Grand Total 
0     $50     $100 


print (df.columns.tolist()) 
['Client 1 Grand Total', 'Client 2 Grand Total'] 
+0

Ich hätte wahrscheinlich erwähnt, dass es über 100 Spalten gibt. Gibt es eine andere Vorgehensweise, ohne 100 Spaltennamen in mein Skript eingeben zu müssen? – Minymina

+0

100 Spalten ist kein Problem. Es ist sehr klein Daten für Pandas;) Aber in meiner Lösung ist nicht notwendig, wissen Namen, wenn 'MultiIndex'. Oder Lösung funktioniert nicht? – jezrael

+0

Was ist 'print (df.columns)'? – jezrael

Verwandte Themen