2017-04-26 2 views
2

Ich habe einen Datensatz wie dieseWie kombinieren Reihen in Pandas

df = pd.DataFrame({'a' : ['a', 'b' , 'b', 'a'], 'b': ['a', 'b' , 'b', 'a'] }) 

und ich möchte zunächst zwei Reihen kombinieren und erhalten Dataset ähnliche

df = pd.DataFrame({'a' : ['a b' , 'b', 'a'], 'b': ['a b' , 'b', 'a'] }) 

keine Regeln, aber ersten beiden Reihen. Ich weiß nicht, wie Zeile zu kombinieren, so i ‚schaffen‘ Methode von transpose() als zu kombinieren, um unter

db = df.transpose() 
db["new"] = db[0].map(str) +' '+ db[1] 
db.drop([0, 1], axis=1, inplace=True) # remove these two columns 
cols = db.columns.tolist() # re order 
cols = cols[-1:] + cols[:-1] 
db = db[cols] 
df = db.transpose() # reverse operation 
df.reset_index() 

Es funktioniert, aber ich denke, es ist ein einfacher Weg,

Antwort

2

Sie einfach die beiden Zeilen hinzufügen können

df.loc[0] = df.loc[0]+ df.loc[1] 
df.drop(1, inplace = True) 

Sie erhalten

a b 
0 ab ab 
2 b b 
3 a a 

Ein bisschen mehr Phantasie suchen :)

df.loc[0]= df[:2].apply(lambda x: ''.join(x)) 
df.drop(1, inplace = True)