2017-05-12 2 views
1

Ich habe eine Beispieldaten zu halten:aufgeteilt nur 1 Spalte 2, aber andere Pandas Python

import pandas as pd 
d = { 
'unit': ['001 peds', '002 peds1', '003 4U', '004 4U1', '005 MS'], 
'N-D': ['Numerator', 'Denominator', 'Numerator', 'Denominator', 'Numerator'], 
'value': [0, 1, 0, 1, 0], 

} 
df = pd.DataFrame(d) 

es sieht wie folgt aus:

N-D  unit  value 
Numerator  001 peds  0 
Denominator 002 peds1  1 
Numerator  003 4U  0 
Denominator 004 4U1  1 
Numerator  005 MS  0 

Ich möchte spaltete die ‚Einheit‘ Spalte in 2 von einem Leerzeichen: "" mein Code:

df1 = df['unit'].str.split(" ", expand=True) 

der Ausgang ist:

aber meine anderen 2 Spalten sind weg, ich weiß nicht genau die richtige Syntax, um dies auf einer Datenrahmenebene zu tun, so wird es den Rest der Spalten behalten.

meine gewünschte Ausgabe:

N-D  0  1 value 
Numerator  001 peds  0 
Denominator 002 peds1  1 
Numerator  003 4U  0 
Denominator 004 4U1  1 
Numerator  005 MS  0 

Antwort

2
i = df.columns.get_loc('unit') 
df2 = df['unit'].str.split(" ", expand=True) 
pd.concat([df.iloc[:, :i], df2, df.iloc[:, i+1:]], axis=1) 

      N-D 0  1 value 
0 Numerator 001 peds  0 
1 Denominator 002 peds1  1 
2 Numerator 003  4U  0 
3 Denominator 004 4U1  1 
4 Numerator 005  MS  0 

Wenn Sie die von 0 Spalte

df.assign(unit=df.unit.str.split(n=1).str[1]) 

      N-D unit value 
0 Numerator peds  0 
1 Denominator peds1  1 
2 Numerator  4U  0 
3 Denominator 4U1  1 
4 Numerator  MS  0 

Sie die Spalte umbenennen loswerden wollen 'unit' was auch immer Sie

mögen
df.assign(unit=df.unit.str.split(n=1).str[1]).rename(columns=dict(unit='w/e')) 

      N-D w/e value 
0 Numerator peds  0 
1 Denominator peds1  1 
2 Numerator  4U  0 
3 Denominator 4U1  1 
4 Numerator  MS  0 
+0

Gibt es einen direkteren Weg? ohne pd.concat benutzen zu müssen? frage mich einfach – Jessica

+0

@Jessica Ich kann mir viele Möglichkeiten vorstellen ... aber nicht mehr geradlinig. – piRSquared

+0

Wie kann ich die Spalte mit '0' als Name löschen? del df3 ['0'] funktioniert nicht. Wie lautet der tatsächliche Spaltenname? – Jessica

Verwandte Themen