2017-11-15 4 views
1

Ich habe einen df in Pandas erhalten, die wie folgt aussieht:Pandas iterrows Reihe String als Liste

id name values 

1 a cat dog 
2 b bird fly 

ich zur Zeit mache:

for index, row in df.iterrows(): 
    print row["values"] 

jedoch, dass die gesamte Zelle druckt: "cat dog" oder "bird fly".

Ich habe zu tun versucht:

print row["values"][0] 

, die stattdessen ein einzelnes Zeichen druckt, so "c" und "b".

Wie kann ich stattdessen etwas wie ["cat", "dog"] und ["bird", "fly"]

+3

[ 'str.split()'] (https://docs.python.org/2/library/stdtypes.html#str. split) – 0x5453

+0

'values' ist ein reservierter Begriff in Pandas, und Sie erhalten eine unerwartete Ausgabe, wenn Sie versuchen, Operationen auf' df.values' auszuführen. Überlegen Sie, diese Spalte umzubenennen. –

+1

Sie möchten 'df ['values']. Str.split(). Tolist()' –

Antwort

1

So:

for index, row in df.iterrows(): 
    print(row["values"].split()) 

Ausgang:

['cat', 'dog'] 
['bird', 'fly'] 
2

Sie müssen die Daten

df['values'].str.split() 

0  [cat, dog] 
1 [bird, fly] 

Um die einzelnen Element zu erhalten, spalten

df['values'].str.split().str[0] 

Und Sie erhalten

0  cat 
1 bird 
Verwandte Themen