数据来源
数据来源于博主高级农民工的博客文章“pyspider爬取并分析虎嗅网5万篇文章”,感谢博主提供的数据与代码。
数据导入
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来显示中文标签
plt.rcParams['axes.unicode_minus'] = False #显示负号
%matplotlib inline
data = pd.read_csv('G:\huxiu_data\huxiu.csv')
data.head()
样本数据.PNG
数据共包含49996行,7列。
列名含义:abstract 摘要 comment 评论 favorites 喜欢 name 姓名 title 标题 url 网址 write_time 写作时间
数据清洗
数据清洗主要包括清除重复值,以及查看数据缺失与否,数据格式是否要转换等等。
在本次分析中,进行了去重处理;将时间里的几小时前或者几天前的数据转化为日期格式;以及删除了姓名中多余的字符©;
data.drop_duplicates(keep ='first',inplace = True) #去重
data = data.reset_index(drop = True)
data['write_time'] = data['write_time'].replace('.*小时前','2018-11-02',regex = True)
data['write_time'] = data['write_time'].replace('1天前','2018-11-01')
data['write_time'] = data['write_time'].replace('2天前','2018-10-31')
data['write_time'] = data['write_time'].replace('3天前','2018-10-30')
data['write_time'] = data['write_time'].replace('4天前','2018-10-29')
data['write_time'] = data['write_time'].replace('5天前','2018-10-28')
data['write_time'] = data['write_time'].replace('6天前','2018-10-27') #时间格式转换
data['write_time'] = pd.to_datetime(data['write_time'])
data['name'] = data['name'].replace('©','',regex=True)
#data['name'] = data['name'].str.strip('©')
#增加一列数据 标题的长度 进行后续分析
data['title_length'] = data['title'].apply(len)
数据分析
数字变量分析
data.describe()
数字变量总体情况.PNG
可以看到:
- 文章的平均评论数与收藏量都不是很多,其中文章平均评论量为24,文章平均收藏量为48。
- 两组数据的偏差都比较大,不同文章之间的评论量与收藏量差异巨大;
-
文章平均长度为23个字,比较有趣的是字数最少的标题竟然只有一个字,下面看看标题只有一个字的文章长什么样?
壳.PNG
文章标题为一个字的文章标题:”壳”
评论量、收藏数和字数长度之间的关系
import seaborn as sns
sns.pairplot(data,diag_kind="kde") # diag_kind 表示单变量为线性,默认值条形图。
评论量、收藏数和字数长度之间的关系.png
从上可以看出:
- 评论量与收藏量都是长尾分布,大部分文章评论量与收藏量较少,少量的文章获得了较多的评论量与收藏量。
- 通过分析评论量与收藏量的关系,发现,评论量较高的文章,收藏量较低;收藏量较高的文章,评论量较低。
- 文章标题长度超过100的,收藏量与评论量都比较低。
文章收藏量TOP20
top = data.sort_values(['favorites'],ascending = False)
top.index = range(1,1+len(top.index))
top.index.name = 'TOP20'
top[:20][['title','favorites','comment']]
文章收藏量TOP20.PNG
在收藏量TOP20中,仅仅通过分析标题,主题有书籍推荐、演讲、经济、思维等,可以发现大部分都是干货。但是收藏量第2的文章似乎与与其他的文章格格不入?京东打脸央视,不像干货?去虎嗅上瞧瞧~
京东打脸央视.PNG
仔细看了这篇文章,小佳觉得完全没有收藏的必要
央视曝京东涉嫌销售翻新机,然后京东拿出证据证明自己清白,小佳总觉得这是京东的软文。23333,收藏量第二?水军刷上去的么?
文章评论量TOP20
top_1 = data.sort_values(['comment'],ascending = False)
top_1.index = range(1,1+len(top.index))
top_1.index.name = 'TOP20'
top_1[:20][['title','favorites','comment']]
评论量top20.PNG
- 有一些文章标题带问号,暗示读者去评论?
-
为什么三星的话题评论量这么多?小佳决定去找几篇关于三星的文章瞅瞅~
小佳去看了这几篇文章,简直一言难尽······
下面是其中两篇文章的评论:
三星文章评论.PNG
三星文章评论
诶,感觉是软文,虎嗅肯定收三星钱了。
最高产作家top10
data.name.value_counts()
data_name = data[data['name'] !='虎嗅'] # 删除虎嗅官方的文章
data_name.groupby('name')['title'].count().sort_values(ascending = False).head(10)
最高产作家top10.PNG
网友评论