《數(shù)據(jù)蛙每周交作業(yè)小組》截至第7周交作業(yè)情況分析

背景

這是數(shù)據(jù)蛙每周交作業(yè)小組成立的第7周螟加,由于每周要統(tǒng)計(jì)作業(yè)提交情況蛀恩,并根據(jù)上兩周每位童鞋提交的作業(yè)數(shù)量、獲得的評論數(shù)和喜歡數(shù)選出本周最受歡迎的作者彻磁。恰好這周又剛剛開始學(xué)習(xí)pandas哥桥,剛好拿來練手辙浑,所以寫了這篇報(bào)告。

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

獲取方法借鑒群主的數(shù)據(jù)分析實(shí)戰(zhàn)---通過爬蟲管理社群作業(yè)拟糕,寫的十分詳細(xì)判呕,再次感謝群主大大。
1.基本思路:采取requests + BeautifulSoup + pymysql爬取數(shù)據(jù)蛙每周交作業(yè)小組截至今天上午提交的作業(yè)送滞,然后保存至數(shù)據(jù)庫中侠草。
2.爬取字段
name:作者簡書ID
title:文章標(biāo)題
publish_time:發(fā)布文章時(shí)間
word_age:文章字?jǐn)?shù)
comments_count:該篇文章獲得的評論數(shù)
likes_count:該篇文章獲得的喜歡數(shù)
注意:群主凡人求索的文章爬取了前4個(gè)字段,要爬取評論數(shù)和喜歡數(shù)犁嗅,需要自行添加一下边涕。

數(shù)據(jù)分析部分主要借鑒了小佳童鞋的《瘋狂數(shù)據(jù)分析》第一周成員學(xué)習(xí)情況分析,感謝~

數(shù)據(jù)導(dǎo)入

在數(shù)據(jù)獲取時(shí)褂微,將數(shù)據(jù)存入了crazydata庫的表homework中功蜓,首先從數(shù)據(jù)庫中讀取交作業(yè)數(shù)據(jù):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

import pymysql
dbconn = pymysql.connect(host='localhost',database='crazydata',user='root',password='root',port=3306,charset='utf8')
sqlcmd = "select * from homework"
data = pd.read_sql(sqlcmd, dbconn)

查看交作業(yè)的整體情況:

data.info()
截至第七周交作業(yè)整體情況.png

可知,截至第七周一共提交了379篇文章宠蚂。
獲取數(shù)據(jù)樣本:

data.head()

數(shù)據(jù)樣本.png
查看共有多少位簡書作者向數(shù)據(jù)蛙每周交作業(yè)小組提交過文章:

data['name'].nunique()

結(jié)果為69式撼。
綜上截至第七周(2019年1月27日上午6時(shí))一共有69位小組成員提交了共379篇文章。

數(shù)據(jù)清洗

1.發(fā)布時(shí)間

from dateutil.parser import parse
data.publish_time = data.publish_time.str.strip('*') #清除發(fā)布時(shí)間里面多余的*
for i in data.publish_time:
    i = parse(i)                
data.publish_time = pd.to_datetime(data.publish_time)  #將發(fā)布時(shí)間轉(zhuǎn)化為datetime類型
data['date'] = data.publish_time.dt.day
data['hour'] = data.publish_time.dt.hour

2.文章字?jǐn)?shù)

data.word_age = data.word_age.str.strip('字?jǐn)?shù)') #刪除字?jǐn)?shù)字段多余的“字?jǐn)?shù)”
data.word_age = data.word_age.astype('int')  #將類型轉(zhuǎn)換為int類型

3.文章獲取的評論數(shù)

data.comments_count = data.comments_count.str.strip('\n')  # 刪除評論數(shù)字段多余的\n
data.comments_count = data.comments_count.astype('int') 

4.文章獲取的喜歡數(shù)

data.likes_count = data.likes_count.astype('int')

再次查看數(shù)據(jù)整體情況及樣本:

data.info()
data.head()
數(shù)據(jù)清洗后整體情況.png
數(shù)據(jù)清洗后樣本.png

此時(shí)求厕,發(fā)布時(shí)間字段已經(jīng)轉(zhuǎn)為datetime類型著隆,文章字?jǐn)?shù)、評論數(shù)和喜歡數(shù)字段已轉(zhuǎn)為int類型甘改。

數(shù)據(jù)分析

文章發(fā)布篇數(shù)

data.groupby(['name'])[['title']].count().describe()
發(fā)布文章概覽.png
data.groupby(['name'])['title'].count().sort_values(ascending = False).head(5)

發(fā)布文章最多的前5名.png
截至第7周旅东,一共有69人發(fā)布文章到數(shù)據(jù)蛙每周交作業(yè)小組專題,平均每人提交5篇十艾。25%的人提交了7篇及以上的文章。
發(fā)布文章數(shù)最多的前五名分別是:1點(diǎn)點(diǎn)De小任性丶 腾节、yimengtianya1忘嫉、Great_smile、夜希辰案腺、凡人求索 庆冕。

提交作業(yè)時(shí)間

data['dayofweek'] = data['publish_time'].dt.dayofweek # 獲取提交作業(yè)的時(shí)間是一周中的星期幾
data.groupby(['dayofweek'])['name'].count().plot(kind='bar')
plt.show()

data.groupby(['hour'])['name'].count().plot(kind='bar')
plt.show()
提交作業(yè)的星期.png

大部分童鞋在周日提交作業(yè)。


一天中提交作業(yè)時(shí)段變化.png

一天中提交作業(yè)的時(shí)段集中在中午和晚上劈榨。晚上7點(diǎn)左右提交的數(shù)量最多访递。

文章字?jǐn)?shù)、獲得評論數(shù)同辣、喜歡數(shù)

data.groupby(['name'])[['word_age', 'comments_count', 'likes_count']].sum().describe()
文章字?jǐn)?shù)拷姿、評論數(shù)惭载、喜歡數(shù)概覽.png

1.文章字?jǐn)?shù)
查看上圖,發(fā)現(xiàn)每位作者寫的總文章字?jǐn)?shù)竟然有0個(gè)字的响巢,這不科學(xué)描滔,篩選出總文章字?jǐn)?shù)為0的作者及其提交的文章:

df = data.groupby(['name'])[['word_age']].sum()
df[ df.word_age==0 ]
異常數(shù)據(jù)1.png
data[data['name'] == 'EricGuoxm' ]

異常數(shù)據(jù)2.png
數(shù)據(jù)蛙每周交作業(yè)小組專題搜索發(fā)現(xiàn),該作者是新加入小組的踪古,只提交過1篇文章含长,且該篇文章由圖片組成,沒有文字伏穆。
剔除該篇文章重新統(tǒng)計(jì)文章字?jǐn)?shù)拘泞、獲得評論數(shù)、獲得喜歡數(shù):

data.drop(286, inplace=True)
data.groupby(['name'])[['word_age', 'comments_count', 'likes_count']].sum().describe()
文章字?jǐn)?shù)枕扫、評論數(shù)田弥、喜歡數(shù)概覽(刪除異常值后).png

截至第七周,68位小組成員平均每位寫了4078個(gè)字铡原,最多的寫了16178個(gè)字偷厦。
2.文章獲得評論數(shù)
查看獲取的評論數(shù)最多的前5名小組成員:

data.groupby(['name'])[['comments_count']].sum().sort_values(by='comments_count', ascending=False).head(5)
獲得評論數(shù)最多的前5位小組成員.png

查看獲得評論數(shù)最多的單篇文章及其作者的前5名:

data[['name', 'title', 'comments_count']].sort_values('comments_count', ascending=False)
獲得評論數(shù)最多的單篇文章及其作者.png

平均每位作者獲得了2個(gè)評論,文章的總評論數(shù)和單篇文章獲得評論數(shù)最多的均為凡人求索燕刻。
3.文章喜歡數(shù)
查看獲取的喜歡數(shù)最多的前5名小組成員:

data.groupby(['name'])[['likes_count']].sum().sort_values(by='likes_count', ascending=False).head(5)
獲得喜歡數(shù)最多的前5位小組成員.png

查看獲得喜歡數(shù)最多的單篇文章及其作者的前5名:

data[['name', 'title', 'likes_count']].sort_values('likes_count', ascending=False)
獲得喜歡數(shù)最多的單篇文章及其作者.png

estate47童鞋在獲得的喜歡數(shù)總數(shù)和獲得喜歡數(shù)最多的單篇文章均居榜首只泼,群主凡人求索兩項(xiàng)均榜上有名。平均每位童鞋獲得的喜歡數(shù)為12個(gè)卵洗,我們的文章質(zhì)量要繼續(xù)提升啊请唱。

哪篇文章是截至本周最受歡迎的文章?

我們采取 受歡迎度=文章獲得評論數(shù)*0.2+文章獲得喜歡數(shù)*0.8 的算法:

data['popular_degree'] = 0.2*data['comments_count'] + 0.8*data['likes_count']
data[['name', 'title', 'popular_degree']].sort_values(by='popular_degree', ascending=False)

截至本周最受歡迎的前5篇文章如下:
截至第七周最受歡迎的前5篇文章.png

誰是截至本周最受歡迎的作者过蹂?

采用 受歡迎度=提交文章總數(shù)*0.2+文章獲得總評論數(shù)*0.2+文章獲得總喜歡數(shù)*0.6 的算法:

popular_author = data.groupby(['name'], as_index=False)[ [ 'title', 'comments_count', 'likes_count'] ].agg({'title': 'count',  'comments_count': 'sum', 'likes_count': 'sum'})
popular_author['popular_degree'] = popular_author['title'] * 0.2 + popular_author['comments_count'] * 0.2 + popular_author['likes_count'] * 0.6
popular_author.sort_values(by='popular_degree', ascending=False).head(10)

截至本周最受歡迎的作者如下:
截至第七周最受歡迎的前5位作者.png

總結(jié):

1.截至2019.1.27上午6時(shí)十绑,一共有69位小組成員提交了共379篇文章。
2.一周中提交作業(yè)的時(shí)間集中在每周日酷勺,一天中提交作業(yè)的時(shí)段集中在中午11-12時(shí)和晚上17-24時(shí)本橙。
3.平均每位小組成員發(fā)布了5.5篇文章。最多的已發(fā)布19篇脆诉。
4.平均寫作字?jǐn)?shù)4078個(gè)甚亭。最多的累積寫作字?jǐn)?shù)達(dá)到16178個(gè)。
5.最受歡迎的單篇文章獲得了95個(gè)喜歡击胜,最受歡迎的作者獲得了116個(gè)喜歡亏狰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市偶摔,隨后出現(xiàn)的幾起案子暇唾,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件策州,死亡現(xiàn)場離奇詭異瘸味,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抽活,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門硫戈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人下硕,你說我怎么就攤上這事丁逝。” “怎么了梭姓?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵霜幼,是天一觀的道長。 經(jīng)常有香客問我誉尖,道長罪既,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任铡恕,我火速辦了婚禮琢感,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘探熔。我一直安慰自己驹针,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布诀艰。 她就那樣靜靜地躺著柬甥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪其垄。 梳的紋絲不亂的頭發(fā)上苛蒲,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機(jī)與錄音绿满,去河邊找鬼臂外。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棒口,可吹牛的內(nèi)容都是我干的寄月。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼无牵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了厂抖?” 一聲冷哼從身側(cè)響起茎毁,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后七蜘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谭溉,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年橡卤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扮念。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碧库,死狀恐怖柜与,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嵌灰,我是刑警寧澤弄匕,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站沽瞭,受9級特大地震影響迁匠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驹溃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一城丧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豌鹤,春花似錦亡哄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拐辽,卻和暖如春拣挪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俱诸。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工菠劝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人睁搭。 一個(gè)月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓赶诊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親园骆。 傳聞我的和親對象是個(gè)殘疾皇子舔痪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評論 2 354

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