這篇博客從用python實現分析數據的一個完整過程。以下着重幾個python的moudle的運用“pandas”,"“wordcloud”,“matlibplot”;
1、導入數據,看看數據的結構內容:
import pandas as pd mytext = pd.read_csv(r'F:\kaggle data\2016-us-presidential-debates\test.csv',encoding = 'iso-8859-1')
>>> mytext.head(2) ######看看數據的結構 Line Speaker Text \ 0 1 Holt Good evening from Hofstra University in Hempst... 1 2 Audience (APPLAUSE) Date 0 2016/9/26 1 2016/9/26
2、清洗數據(包括剔除異常數據,新增必要字段,以及簡單的字段為空的處理)
text = mytext.iloc[7:26,:].reset_index(drop=True) #行操作:前面幾行是寒暄不用具體看所以刪除前面7行 del text['Date'] #列操作:刪除Date列 ## text.insert(3,"新加列",新加列的數值)
3、制作各個candidate的言論的詞雲圖;
import matplotlib.pyplot as plt from wordcloud import WordCloud ##詞雲庫 import nltk from nltk.corpus import stopwords ##分詞庫 stopwords =set(stopwords("english"))
stopwords |={"will","yes"} words = " ".join((text.Speaker=='Clinton').['Text']) ##將希拉里的發言匯集起來 cloud =WordCloud(background_color="white",width=3000,height=2500,stopwords=stopwords).generate(words)
plt.figure(1,figsize=(8,8))
plt.imshow(cloud)
plt.show()
ps:這里只是做了個簡單的可視化,可以自己嘗試
4、進一步挖掘數據內容【ex:此前美國媒體反映在美國競選第一次辯論時,川普經常被打斷的現象嚴重,我們可以用數據來觀察這一現象】
trump=[3,5,7] #'Making laugh','Making applaud','Be interrupted' clinton=[3,3,2] #'Making laugh','Making applaud','Be interrupted' fig,ax=plt.subplots() width=0.35 rects1 = ax.bar(ind,trump,width,color='r') tects2 = ax.bar(ind+width,clinton,width,color='y') ax.set_ylabel('Counts') ax.set_title('Counts of behavior of mediator and audience') ax.set_xticks(ind) ax.set_xticklabels(('Making laugh','Making applaud','Be interrupted'),rotation =45) plt.show()
根據這個觀點然后去挖掘可以看到川普頻繁被打斷,其實后面還可以挖挖,川普在說什么內容的時候被打斷(同樣可以類似上面的詞雲的操作,有興趣可以試下)。