2016-07-22 8 views
-3

Ich versuche, den Benutzerstandort in Bezug auf Benutzernamen von Twitter zu kratzen.Analysieren Benutzername zum Extrahieren des Benutzerstandorts Twitter

Input: Die Benutzerliste hat mehr als 50K Benutzernamen

AkkiPritam,6.77E+17,12/15/2015,#chennaifloods 
AkkiPritam,6.77E+17,12/15/2015,#bhoomikatrust 
AkkiPritam,6.77E+17,12/15/2015,#akshaykumar 
gischethans,6.77E+17,12/15/2015,#chennaifloods 
mid_day,6.77E+17,12/15/2015,#bollywood 
mid_day,6.77E+17,12/15/2015,#chennaifloods 
Nanthivarman16,6.77E+17,12/15/2015,#admkfails 
Nanthivarman16,6.77E+17,12/15/2015,#jayafails 
Nanthivarman16,6.77E+17,12/15/2015,#stickergovt 
Nanthivarman16,6.77E+17,12/15/2015,#chennaifloods 
AdilaMatra,6.77E+17,12/15/2015,#chennaifloods 
AdilaMatra,6.77E+17,12/15/2015,#climatechange 
AdilaMatra,6.77E+17,12/15/2015,#delhichokes 
AdilaMatra,6.77E+17,12/15/2015,#smog 
HDFCERGOGIC,6.77E+17,12/15/2015,#chennaifloods 
HDFCERGOGIC,6.77E+17,12/15/2015,#tnfloods 
ImSoorej,6.77E+17,12/15/2015,#chennaifloods 
ImSoorej,6.77E+17,12/15/2015,#chennaimicr 

Code: I geo Lage möglicherweise Geo-Koordinaten finden möchten.

Fehler: Problem beim Parsen der Benutzernamen in das Programm.

Traceback (most recent call last): 
    File "user_profile_location.py", line 38, in <module> 
    username = df['user_name'] 
TypeError: list indices must be integers, not str 
+1

umm. 'df' ist kein Wörterbuch, es ist eine Liste von Strings - Sie müssen auf' df' Elemente zugreifen, indem Sie ganzzahlige Indizes verwenden. –

+0

@ChitharanjanDas Danke! Welche Änderungen mache ich? –

+0

Ihr Code hier 'data = pd.read_csv ('user_keyword.csv')' erstellt den DataFrame. 'df = ['user_name', 'user_id', 'date', 'Schlüsselwort']' erstellt eine Python-Liste und weist die Liste der Variablen 'df' zu. Wenn Ihr csv Überschriften hat, die mit den Elementen in der Liste übereinstimmen, dann müssen Sie 'data ['user_name'] verwenden' 'Mein bester Vorschlag wäre, die Pandas [docs] zu lesen (http://pandas.pydata.org/pandas- docs/stable /) – toasteez

Antwort

1

Sie verwenden ‚data‘ Ihre Datenrahmen und ‚df‘ zu definieren, für das, was ich denke, sollten die Spalten der Datenrahmen

data = pd.read_csv('user_keyword.csv') 
df = ['user_name', 'user_id', 'date', 'keyword'] 

sein Ich gehe davon aus, dass die user_keyword.csv Datei keinen Header hat , versuchen Sie hinzufügen:

data.columns = df 

Es wird die Spaltennamen zu den in df gespeicherten Werten ändern. dann später statt:

username = df['user_name'] 

Versuchen:

username = data['user_name'] 

Beachten Sie, dass jetzt Benutzername eine ganze Spalte ist so sollte get_user_details(username) nicht einen einzelnen String erwartet werden.

+0

erhalte ich diesen Fehler zu graben: ' File "user_profile_location.py", Zeile 40, in userObj = get_user_details (username) File "user_profile_location.py", Zeile 29, in get_user_details userobj = api.get_user (Benutzername) Datei "/usr/local/lib/python2.7/dist-packages/tweepy/binder.py", Zeile 245, in _call return method.execute () Datei "/usr/local/lib/python2.7/dist-packages/tweepy/binder.py ", Zeile 229, in der Ausführung raise TweepError (error_msg, resp, api_code = api_error_code) tweepy.error.TweepError: [{u'message ': Du kannst dich nicht authentifizieren.', u'code ': 32} ] ' –

+0

Sieht so aus als hätten Sie einen Authentifizierungsfehler – toasteez

+1

' userOBJ = get_user_details (Benutzername) 'versuchen Sie, den Benutzernamen durch Ihren Benutzernamen zu ersetzen Wenn das funktioniert, dann versuchen Sie einen Benutzer zu authentifizieren, dessen Anmeldeinformationen Sie nicht haben. – toasteez

Verwandte Themen