2017-04-25 4 views
0

Ich habe einen Pandas Datenrahmen mit einer Spalte: Verbrechensart. Die Spalte enthält 16 verschiedene "Kategorien" von Verbrechen, die ich gerne als eine Wortwolke visualisieren würde, mit Wörtern, die basierend auf ihrer Häufigkeit innerhalb des Datenrahmens bemessen sind.Generiere Wortwolke aus einspaltigem Pandas Datenrahmen

enter image description here

Ich habe versucht, dies mit dem folgenden Code zu tun:

in den Daten zu bringen:

wordcloud2 = WordCloud().generate(text2) 
# Generate plot 
plt.imshow(wordcloud2) 
plt.axis("off") 
plt.show() 

:

fields = ['Crime type'] 

text2 = pd.read_csv('allCrime.csv', usecols=fields) 

die Wortwolke zu erzeugen Allerdings bekomme ich diesen Fehler:

Ich konnte eine frühere Wortwolke aus dem vollständigen Dataset mit dem folgenden Code erstellen, aber ich möchte, dass die Wortwolke nur Wörter aus der spezifischen Spalte 'crime type' ('allCrime.csv' generiert). enthält ca. 13 Spalten):

text = open('allCrime.csv').read() 
wordcloud = WordCloud().generate(text) 
# Generate plot 
plt.imshow(wordcloud) 
plt.axis("off") 
plt.show() 

Ich bin neu in Python und Pandas (und Codierung im Allgemeinen), so dass alle Hilfe wird dankbar angenommen.

+1

Sie können überprüfen möchten [diese] (http://stackoverflow.com/questions/42193013/wordcloud-for-a-csv-file-in-python) ... – MaxU

Antwort

4

Das Problem ist, dass die WordCloud.generate-Methode, die Sie verwenden, erwartet eine Zeichenfolge, auf der es das Wort Instanzen zählen wird, aber Ihre pd.Series bereitstellen.

Je nachdem, was Sie die Wortwolke auf generieren möchten, können Sie entweder tun:

  1. wordcloud2 = WordCloud().generate(' '.join(text2['Crime Type'])), die alle Wörter in Ihrer Datenrahmen Spalte verketten würde und dann alle Instanzen zählen.

  2. Verwenden Sie WordCloud.generate_from_frequencies, um die berechneten Wörterhäufigkeiten manuell zu übergeben.

+0

Dank languitar und @MaxU - Eine Kombination Ihrer Posts hat für mich funktioniert. –

Verwandte Themen