2016-08-04 8 views
2

Ich habe eine Spalte in einem Excel, die eine Mischung aus Vornamen, Nachnamen und Jobtiteln enthält. Nur das Muster, das beobachtet werden kann, ist - in jedem Satz von 3 Reihen ist jede erste Reihe der Vorname, die zweite Reihe ist der Nachname und die dritte Reihe ist die Jobbezeichnung. Ich möchte drei verschiedenen Spalten erstellen und zu und trennen diese Daten Beispieldaten:Separate Daten von einer Spalte in drei Spalten

John 
Bush 
Manager 
Katrina 
Cohn 
Secretary 

Ich möchte: John, Bush, Manager als eine Zeile in drei verschiedenen Spalten unter Vorname, Nachname und Job-Titel bzw. gehen. Wie -

First Name Last Name Job Title 
John   Bush   Manager 
Katrina  Cohn   Secretary 

Wie können wir diese Aufgabe erreichen?

Antwort

0
s = pd.Series([ 
     'John', 
     'Bush', 
     'Manager', 
     'Katrina', 
     'Cohn', 
     'Secretary']) 

df = pd.DataFrame(s.values.reshape(-1, 3), 
        columns=['First Name', 'Last Name', 'Job Title']) 

df 

enter image description here


Wenn Ihre Länge Ihrer Daten nicht ein Vielfaches von 3 ist, dann können Sie es wie folgt erzwingen:

s = pd.Series([ 
     'John', 
     'Bush', 
     'Manager', 
     'Katrina', 
     'Cohn', 
     'Secretary', 
     'Bogus']) 

s_ = s.iloc[:s.shape[0] // 3 * 3] 
df = pd.DataFrame(s_.values.reshape(-1, 3), columns=['First Name', 'Last Name', 'Job Title']) 

df 

enter image description here

+0

Valueerror sein: Gesamtgröße des neuen Arrays müssen unverändert – ComplexData

+0

@ user6461192, dass Ihre Serie bedeutet, ist nicht von einer Länge, die ein Vielfaches von 3. Siehe bearbeitet Beitrag ist. – piRSquared

+0

Danke das hat funktioniert. Was können wir tun, wenn wir eine Excel-Eingabe machen müssen, statt die Daten in der Serie – ComplexData

3

Sie können verwenden, um jedes dritte Element mit anderen Startpunkten zu erhalten.

l = ['John', 'Bush', 'Manager', 'Katrina', 'Cohn', 'Secretary'] 

pd.DataFrame({'First Name': l[::3], 'Last Name': l[1::3], 'Job Title': l[2::3]}) 

Ausgänge

First Name Job Title Last Name 
0  John Manager  Bush 
1 Katrina Secretary  Cohn 
+0

Valueerror: Arrays müssen alle gleich lang – ComplexData

Verwandte Themen