手把手教你完成一個(gè)數(shù)據(jù)科學(xué)小項(xiàng)目(4):評(píng)論數(shù)變化情況

前言

本系列將全面涉及本項(xiàng)目從爬蟲(chóng)畔勤、數(shù)據(jù)提取與準(zhǔn)備、數(shù)據(jù)異常發(fā)現(xiàn)與清洗彤灶、分析與可視化等細(xì)節(jié),并將代碼統(tǒng)一開(kāi)源在GitHub:DesertsX/gulius-projects 倔监,感興趣的朋友可以先行 star 哈。

請(qǐng)先閱讀“中國(guó)年輕人正帶領(lǐng)國(guó)家走向危機(jī)”荡短,這鍋背是不背丐枉? 一文,以對(duì)“手把手教你完成一個(gè)數(shù)據(jù)科學(xué)小項(xiàng)目”系列有個(gè)全局性的了解掘托。

《踏莎行》

我知道好幾個(gè)朋友按照前幾篇文章的內(nèi)容已經(jīng)開(kāi)始運(yùn)行代碼了瘦锹,也知道一些人遇到了我碰到的 BUG,雖然更鼓勵(lì)自行根據(jù)報(bào)錯(cuò)信息網(wǎng)上搜索解決方案闪盔,但也不介意加 Python
交友娛樂(lè)會(huì)所群(QQ群:613176398弯院,娛樂(lè)會(huì)所沒(méi)有嫩模)來(lái)詢(xún)問(wèn),力所能及處也會(huì)幫忙新手小白看看為何出錯(cuò)泪掀,可愛(ài)友善的群友也同樣會(huì)幫忙的听绳。

而如果你正被 BUG 折騰的“心力交瘁”,這里送上一首葉嘉瑩先生的《踏莎行》异赫,希望你能元?dú)鉂M滿哈椅挣。(如何評(píng)價(jià)葉嘉瑩? - Deserts X

—世多艱塔拳,寸心如水鼠证。也曾局囿深杯里。炎天流火劫燒余靠抑,藐姑初識(shí)真仙子量九。
谷內(nèi)青松,蒼然若此颂碧。歷盡冰霜偏未死荠列。一朝鯤化欲鵬飛,天風(fēng)吹動(dòng)狂波起载城。

評(píng)論數(shù)變化情況

數(shù)據(jù)讀取

但不管什么說(shuō)肌似,截至目前已經(jīng)完成了數(shù)據(jù)爬取數(shù)據(jù)提取與IP查詢(xún)个曙、數(shù)據(jù)異常與清洗锈嫩,拿到手的數(shù)據(jù)終于可以用來(lái)分析和可視化了,也是件值得欣慰的事垦搬。

那么呼寸,閑言少敘,先來(lái)看看評(píng)論數(shù)隨時(shí)間的變化情況吧猴贰,雖然上一篇文章:數(shù)據(jù)異常與清洗里涉及過(guò)对雪,但由于側(cè)重點(diǎn)在數(shù)據(jù)異常,所以未做展開(kāi)米绕,現(xiàn)在重新擴(kuò)展下瑟捣。

import pandas as pd
df = pd.read_csv('Sina_Finance_Comments_All_20180811_Cleaned.csv',encoding='utf-8')
df.head()

請(qǐng)無(wú)視前面幾列多出來(lái)的:


先來(lái)看看評(píng)論數(shù)隨時(shí)間戳變化情況:

import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(df.stamp, df.cmntcount);


時(shí)間戳不太好識(shí)別馋艺,所以還是用常規(guī)的日期,并使用 pyechartspyecharts 配置文檔 )繪制每日評(píng)論數(shù)的變化折線圖:

df_ymdcount = df.groupby('time_ymd')['cmntcount'].count()
from pyecharts import Line
line = Line("每日評(píng)論數(shù)變化情況")
line.add("日期", df_ymdcount.index, df_ymdcount.values,line_type='dotted')
line

按天來(lái)看迈套,這篇文章的大部分評(píng)論都是產(chǎn)生于在8月8號(hào)捐祠,即2008年北京奧運(yùn)會(huì)十周年的當(dāng)日,當(dāng)然可能并不相關(guān)桑李。


df_mdhcount = df.groupby('time_mdh')['cmntcount'].count()
from pyecharts import Line
line = Line("每小時(shí)評(píng)論數(shù)")
line.add("小時(shí)", df_mdhcount.index, df_mdhcount.values,line_opacity=1,line_type='dotted')
line

細(xì)分到每個(gè)小時(shí)上踱蛀,評(píng)論的峰值發(fā)生在8號(hào)的9點(diǎn),高達(dá)658條贵白,數(shù)值大小在本文的圖里看不出來(lái)率拒,但 jupyter notebook 代碼里的 pyecharts 圖表都是交互式的,每個(gè)點(diǎn)的數(shù)值和時(shí)間均可查看禁荒。需注意的是需要運(yùn)行過(guò)過(guò)代碼才能看到猬膨,Github上點(diǎn)開(kāi)是空白的。


然后是看起來(lái)更為立體的每小時(shí)評(píng)論數(shù)柱形圖:

from pyecharts import Bar
bar = Bar("每小時(shí)評(píng)論數(shù)")
bar.add("小時(shí)", df_mdhcount.index, df_mdhcount.values,is_label_show=True,xaxis_interval=0,xaxis_rotate=-90)
bar

該新浪財(cái)經(jīng)這篇《中國(guó)年輕人正帶領(lǐng)國(guó)家走向危機(jī)》文章呛伴,有著極其“聳人聽(tīng)聞”的標(biāo)題勃痴,但同樣逃不過(guò)“速朽”的命運(yùn),在一兩天內(nèi)就趨于平淡了热康。


組合圖 overlap

評(píng)論數(shù)隨時(shí)間的變化情況大概就是這樣了召耘,其實(shí)沒(méi)太多可說(shuō)的,如果把后面提取地理位置(area 列)中的省份和城市數(shù)據(jù)褐隆,并調(diào)用百度地圖API拿到所有位置的經(jīng)緯度,并用BDP繪制動(dòng)態(tài)熱力圖的實(shí)現(xiàn)過(guò)程先在這里一起講的話剖踊,可能更有的可說(shuō)庶弃,不過(guò)內(nèi)容所限還是后續(xù)再講哈。感興趣的朋友可以按照這里的思路自行嘗試?yán)L制出下面的動(dòng)態(tài)圖哈德澈。

4-heat-map-BDP-2h-8FPS.gif

嘮嗑

仍值得一說(shuō)的是在作圖和可視化的過(guò)程中歇攻,對(duì)評(píng)論數(shù)相關(guān)圖表還是不滿意,于是想把每小時(shí)評(píng)論數(shù)的柱形圖和總評(píng)論數(shù)變化的曲線圖組合到一起梆造,就像當(dāng)初爬取張佳瑋138w+知乎關(guān)注者:數(shù)據(jù)可視化完成項(xiàng)目時(shí)缴守,在完全不懂 ECharts3里的代碼和配置項(xiàng)的情況下,硬著頭皮坑 JavaScript 代碼镇辉,搞了個(gè)知乎第一大V“張公子”張佳瑋的138萬(wàn)關(guān)注中自身有100+關(guān)注的人群的性別人數(shù)和比例圖屡穗,今日看來(lái),依舊兼具美感和創(chuàng)意忽肛,不像別處看到的可視化圖一般“丑陋”(逃...)村砂;

也在簡(jiǎn)書(shū)=雞湯?爬取簡(jiǎn)書(shū)今日看點(diǎn):1916篇熱門(mén)文章可視化項(xiàng)目里繪制了簡(jiǎn)書(shū)熱門(mén)文章發(fā)布時(shí)間的年月分布圖屹逛,審美杠杠的(逃...):

當(dāng)然這里不必像上述二者那樣需要去啃 ECharts3 的 JavaScript 代碼(相關(guān)實(shí)現(xiàn):圖表太丑怎么破础废,ECharts神器帶你飛汛骂!),直接在 pyecharts 配置文檔 里有組合圖多種示例评腺,輕松實(shí)現(xiàn)下圖:

df_mdhmax = df.groupby('time_mdh')['cmntcount'].max()
df_mdhcount = df.groupby('time_mdh')['cmntcount'].count()
from pyecharts import Bar, Line, Overlap
bar = Bar("每小時(shí)評(píng)論數(shù)")
bar.add("小時(shí)", df_mdhcount.index, df_mdhcount.values,is_label_show=True,xaxis_interval=-90,
        xaxis_rotate=-90, yaxis_interval=200,yaxis_max=800)
line = Line("每小時(shí)評(píng)論數(shù)")
line.add("小時(shí)", df_mdhmax.index, df_mdhmax.values,line_opacity=1,
         line_type='dotted', yaxis_interval=1000,yaxis_max=4000)

overlap = Overlap()
overlap.add(bar)
overlap.add(line, is_add_yaxis=True, yaxis_index=1)
#overlap.render() # 使用 render() 渲染生成 .html 文件
overlap

便捷的代價(jià)就是配色上沒(méi)有太多選擇的余地:


小結(jié)

pyecharts( 圖表詳情) 提供的圖表選擇還是蠻多的帘瞭,大家可以自行選擇想呈現(xiàn)的效果。后面地圖可視化也會(huì)用到蒿讥。而且蝶念,用起來(lái)很簡(jiǎn)單的,套用示例诈悍,改成自己的數(shù)據(jù)就行祸轮。

本系列將全面涉及本項(xiàng)目從爬蟲(chóng)、數(shù)據(jù)提取與準(zhǔn)備侥钳、數(shù)據(jù)異常發(fā)現(xiàn)與清洗适袜、分析與可視化等細(xì)節(jié),并將代碼統(tǒng)一開(kāi)源在GitHub:DesertsX/gulius-projects 舷夺,感興趣的朋友可以先行 star 哈苦酱。

本系列文章:
“中國(guó)年輕人正帶領(lǐng)國(guó)家走向危機(jī)”,這鍋背是不背给猾?
手把手教你完成一個(gè)數(shù)據(jù)科學(xué)小項(xiàng)目(1):數(shù)據(jù)爬取
手把手教你完成一個(gè)數(shù)據(jù)科學(xué)小項(xiàng)目(2):數(shù)據(jù)提取疫萤、IP 查詢(xún)
手把手教你完成一個(gè)數(shù)據(jù)科學(xué)小項(xiàng)目(3):數(shù)據(jù)異常與清洗

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市敢伸,隨后出現(xiàn)的幾起案子扯饶,更是在濱河造成了極大的恐慌,老刑警劉巖池颈,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尾序,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡躯砰,警方通過(guò)查閱死者的電腦和手機(jī)每币,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)琢歇,“玉大人兰怠,你說(shuō)我怎么就攤上這事±蠲#” “怎么了揭保?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)涌矢。 經(jīng)常有香客問(wèn)我掖举,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任塔次,我火速辦了婚禮方篮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘励负。我一直安慰自己藕溅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布继榆。 她就那樣靜靜地躺著巾表,像睡著了一般。 火紅的嫁衣襯著肌膚如雪略吨。 梳的紋絲不亂的頭發(fā)上集币,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音翠忠,去河邊找鬼鞠苟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛秽之,可吹牛的內(nèi)容都是我干的当娱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼考榨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼跨细!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起河质,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤冀惭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后掀鹅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體云头,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年淫半,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匣砖。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡科吭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猴鲫,到底是詐尸還是另有隱情对人,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布拂共,位于F島的核電站牺弄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宜狐。R本人自食惡果不足惜势告,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一蛇捌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咱台,春花似錦络拌、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至遗遵,卻和暖如春萍恕,著一層夾襖步出監(jiān)牢的瞬間僧诚,已是汗流浹背硼被。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匹厘,地道東北人屯蹦。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓维哈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親登澜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阔挠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容