2017-04-06 3 views
0

ich lese ichPandas Python eine Spalte eines Datenrahmens wählen

tweets = pd.read_csv(r'C:\Users\PedroLuis\Documents\Manita\LASSO 20170219-20170402.csv', sep = " , ", engine='python') 
tweets = pd.DataFrame(tweets) 

Wenn ich die Spalten Liste, was ich sehe, ist

list(tweets) 
Out: ['"","text","favorited","favoriteCount","replyToSN","created","truncated","replyToSID","id","replyToUID","statusSource","screenName","retweetCount","isRetweet","retweeted","longitude","latitude"'] 

eine Spalte aus einer Pandas Datenrahmen zu wählen versuche ich versuche, die zweite Spalte mit seinem Namen wählen>

tweets['text'] 

Und ich bekomme diese Fehlermeldung:

KeyError: 'text'

+0

Das ist seltsam. Was passiert, wenn Sie 'tweets.iloc [:, 1]' versuchen? ps. Sie brauchen die Zeile "tweets = pd.DataFrame (tweets)" nicht, da read_csv() bereits einen Datenrahmen zurückgibt. –

+0

Was wird für tweets.columns ausgegeben? –

Antwort

2

In Ihrem sep = "," befindet sich ein Leerzeichen, das bewirkt, dass alle Spalten kombiniert werden.

ändern es zu

tweets = pd.read_csv(r'C:\Users\PedroLuis\Documents\Manita\LASSO 20170219-20170402.csv', sep = ",", engine='python') 

Sie sollten in der Lage sein, tweet nennen [ ‚text‘]

1

Wenn Sie genau am Ausgang der Liste suchen(), werden Sie eine ganze Zeichenfolge bemerken enthalten in einfachen Anführungszeichen und jede Kopfzeile in doppelten Anführungszeichen, was bedeutet, dass Pandas die Zeile nicht wie erwartet interpretiert hat.

Out: ['"","text","favorited","favoriteCount","replyToSN","created","truncated","replyToSID","id","replyToUID","statusSource","screenName","retweetCount","isRetweet","retweeted","longitude","latitude"'] 

Während es wie

Out: ['','text','favorited','favoriteCount','replyToSN','created','truncated','replyToSID','id','replyToUID','statusSource','screenName','retweetCount','isRetweet','retweeted','longitude','latitude'] 

aussehen soll, weiß ich nicht, was Ihre Eingabe aussieht, aber, wie Niche.P sagt, Ihr Separator Parameter Reinigung könnte eine Lösung sein. Sonst könnte es ein encoding issue sein.

Verwandte Themen