2017-03-13 4 views
0

Okay Ich habe ein bekam sonderbares -Pandas 'Listen' in einer Reihe/Frame

 ctry_list 
0 RU,RU,RU,RU 
1   NaN 
2   NaN 
[Finished in 8.3s] 

Ich brauche die ctry_list in ihre eigene separate Reihe zu bekommen -

 ctry_list 
0   RU 
1   RU 
2   RU 
3   RU 
[Finished in 8.3s] 

Ich habe versucht, dies -

frame2 = frame1[['ctry_list']] 
#print frame2.head(10) 
s = frame2.apply(lambda x: pd.Series(x['ctry_list']),axis=1).stack().reset_index(level=1, drop=True) 
s.name = 'list' 
frame3 = frame2.drop('ctry_list', axis=1).join(s) 
print frame3.head(10) 

Aber das gibt mir gerade diese

  list 
0 RU,RU,RU,RU 
0  BR,BR 
0   ,US 
0   US, 
0  US,US,US 
0   ,, 
0 RU,RU,RU,RU 
0  BR,BR 
0   ,US 
0   US, 
[Finished in 8.2s] 

Wie mache ich das?

Antwort

2

Wenn die ctry_list Spalte enthält Zeichenfolgen mit kommagetrennten Werten, dann funktioniert dies für Ihr Beispiel:

frame1['ctry_list'].str.split(',', expand=True).stack()

+0

Und wie immer Ich fühle mich dumm ... Dank! –

Verwandte Themen