2016-07-19 11 views
1

i haben einen Datenrahmen als FaltenbalgWordcloud von Datenrahmen mit der Frequenz Python

Int64Index: 14830 entries, 25791 to 10668 
Data columns (total 2 columns): 
word 14830 non-null object 
coef 14830 non-null float64 
dtypes: float64(1), object(1) 

i versuchen Wortwolke mit COEF als Frequenz statt für reichliche

text = df['word'] 
WordCloud.generate_from_text(text) 
TypeError: generate_from_text() missing 1 required positional argument: 'text' 

oder

zählen zu lassen
text = np.array(df['word']) 
WordCloud.generate_from_text(text) 
TypeError: generate_from_text() missing 1 required positional argument: 'text' 

Wie kann ich diesen Code verbessern & gemacht Wortwolke wie diese

from wordcloud import WordCloud 
wordcloud = WordCloud(ranks_only= frequency).generate(text) 
plt.imshow(wordcloud) 
plt.axis('off') 
plt.show() 

dank

meine Antwort

zuerst erhalten wir Liste von Tupeln

tuples = [tuple(x) for x in df.values] 

dann

wordcloud = WordCloud().generate_from_frequencies(tuples) 

, das ist alles

Antwort

2

Für mich ist es ein Wörterbuch gearbeitet zu schaffen, wie folgt aus:

d = {} 
for a, x in bag.values: 
    d[a] = x 

import matplotlib.pyplot as plt 
from wordcloud import WordCloud 

wordcloud = WordCloud() 
wordcloud.generate_from_frequencies(frequencies=d) 
plt.figure() 
plt.imshow(wordcloud, interpolation="bilinear") 
plt.axis("off") 
plt.show() 

wo bag ein Pandas Datenrahmen mit Spalten ist Wörter und zählt