2017-04-25 1 views
0

하나의 열이있는 팬더 데이터 프레임이 있습니다. 범죄 유형입니다. 이 칼럼에는 범죄의 16 가지 '카테고리'가 포함되어 있으며 데이터 클라우드 내에서 빈도를 기준으로 단어 크기가 단어로 구성된 클라우드로 시각화하고 싶습니다.단일 열 팬더 데이터 프레임에서 단어 클라우드 생성

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) 

:

가에있는 데이터를 가져하려면 :

enter image description here

나는 다음과 같은 코드를 사용하여이 작업을 수행하려고했습니다 그러나이 오류가 발생합니다 :

TypeError: expected string or bytes-like object 

다음 코드를 사용하여 전체 데이터 세트에서 이전 단어 구름을 만들 수 있었지만 특정 단어 'crime type'('allCrime.csv' 대략 포함한다. 13 열) :

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

나는 파이썬과 팬더 (그리고 일반적으로 코딩!)에 익숙하기 때문에 모든 도움에 감사드립니다.

+1

검사 할 수 있습니다 [이] (http://stackoverflow.com/questions/42193013/wordcloud-for-a-csv-file-in-python) ... – MaxU

답변

4

문제는 사용중인 WordCloud.generate 메서드가 단어 인스턴스를 계산하지만 pd.Series을 제공하는 문자열을 필요로한다는 것입니다. 당신이 단어 구름은 당신도 할 수에 생성하려는 작업에 따라

: 당신의 dataframe 열에서 모든 단어을 연결 한 후 모든 인스턴스를 계산 것

  1. wordcloud2 = WordCloud().generate(' '.join(text2['Crime Type'])).

  2. WordCloud.generate_from_frequencies을 사용하면 계산 된 단어 빈도를 수동으로 전달할 수 있습니다.

+0

덕분에 languitar 및 @MaxU - 귀하의 게시물 조합이 저에게 효과적이었습니다. –

관련 문제