Ich habe an einem Projekt gearbeitet, und müssen die "Vektor" Monate ausfüllen (um ein Histogramm zu machen: Übersicht über die Anzahl der Tweets pro Monat). Zum Ausfüllen der Vektor Monat schrieb ich den folgenden Code:Wie zu implementieren und wenn/Elif/Else-Anweisung in Pandas (Python)
numTweets = list(tweets_cleaned_panda.iloc[:,1])
months = [0, 0, 0, 0, 0, 0, 0]
for i in range(0,len(numTweets)+1):
if tweets_cleaned_panda['created_at'].str.contains("Mar") or tweets_cleaned_panda['created_at'].str.contains("Apr"):
months[0] = months[0] + 1
elif tweets_cleaned_panda['created_at'].str.contains("May"):
months[1] += 1
elif tweets_cleaned_panda['created_at'].str.contains("Jun"):
months[2] += 1
elif tweets_cleaned_panda['created_at'].str.contains("Jul"):
months[3] += 1
elif tweets_cleaned_panda['created_at'].str.contains("Aug"):
months[4] += 1
elif tweets_cleaned_panda['created_at'].str.contains("Sept"):
months[5] += 1
else:
months[6] += 1
print months
Ich habe versucht, Anfügen .any() an den Enden der contains() Aussagen aber als es füllt nur Monat [0].
Ferner schrieb ich den folgenden Code:
for i in range(0,len(numTweets)+1):
np.where(tweets_cleaned_panda['created_at'].str.contains("Mar"),
months[0] = months[0] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("Apr"),
months[0] = months[0] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("May"),
months[1] = months[1] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("Jun"),
months[2] = months[2] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("Jul"),
months[3] = months[3] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("Aug"),
months[4] = months[4] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("Sept"),
months[5] = months[5] + 1,
np.where(tweets_cleaned_panda['created_at'].str.contains("Oct"),
months[6] =months[]+ 1))))))))
Aber dies gab den folgenden Fehler:
SyntaxError: keyword can't be an expression File "", line 10 months[0] = months[0] + 1, SyntaxError: keyword can't be an expression
Jeder, der helfen kann?
Es ist schon lange her, dass ich mit Tweets gearbeitet habe, aber wenn ich mich recht erinnere, kann 'created_at' einfach in datetime konvertiert werden. Können Sie dafür ein Beispiel posten? – ayhan
@ayhan, weiter im Code habe ich das created_at in ein datetiem.date Format konvertiert! (Beispiel ist: datetime.date (2016, 3, 30)) Soll ich dieses Format für meine Berechnungen verwenden? – ClS
Wow, das ist ein Monster-Monster. Warum erstellen Sie keine Liste von Monaten wie 'Monate = [" Jan "," Feb "," Mar "," Apr "," Mai "," Jun "," Jul "," Aug " , "Sept", "Okt", "Nov", "Dez"] ' Dann können Sie etwas wie schreiben: ' für i in Bereich (0, len (numTweets) +1): für j in Monaten: np.where (tweets_cleaned_panda [ 'created_at']. str.contains (j) Monate [i] + = 1 ' ich bin nicht hundertprozentig sicher, dass Code funktioniert, da ich auf meinem Computer nicht installiert haben Pandas , aber das wäre eine logische Lösung für mich .. Code würde wie folgt aussehen (http://pastebin.com/ipYwD5JJ) – mutantkeyboard