一、读取文章数据
pandas读取mysql数据到DataFrame中
1 | import pandas as pd |
二、数据分析
1. 查看数据
df.info()
查看数据信息 df.isnull()
判断数据是否缺失 #### 2. 清洗数据 只保留title、creat_data、tags三个属性的数据 1
df.loc[:,['create_date','title','tags']]
按时间进行排序 1
df.sort_values(by='create_date',ascending = False)
将数据类型转换为日期类型并设置为索引 1
2df['create_date'] = pd.to_datetime(df['create_date'])
df = df.set_index('create_date')
获取2017年的文章信息及tags和title内容 1
2
3df = df['2017']
tags = df['tags']
title = df['title']
3.数据类型转换
首先使用np.array()函数把DataFrame转化为np.ndarray(),再利用tolist()函数把np.ndarray()转为list类型 1
2
3
4
5tags_data = np.array(tags)#np.ndarray()
tags_list = tags_data.tolist()#list
tags_text = "".join(tags_list) # 拼接成text
tags_text = tags_text.replace(',','') #把逗号换为空
tags_text = tags_text.replace('/','')
4.中文分词
利用结巴分词进行中文分词操作 1
2
3
4
5
6import jieba
import pandas as pd
jieba.add_word('C/C++')
segment = jieba.lcut(tags_text)
words_df = pd.DataFrame({'segment':segment})
words_df.head()
进行词频统计 1
2
3
4import numpy
words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数":np.size})
words_stat = words_stat.reset_index().sort_values(by=["计数"],ascending=False)
words_stat.head()
#### 5. 词云显示数据 1
2
3
4
5
6
7
8
9
10
11
12import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib
matplotlib.rcParams['figure.figsize'] = (10.0, 5.0)
from wordcloud import WordCloud#词云包
#用词云进行显示
wordcloud=WordCloud(font_path="simhei.ttf",background_color="white",max_font_size=80)
word_frequence = {x[0]:x[1] for x in words_stat.head(1000).values}
wordcloud = wordcloud.fit_words(word_frequence)
plt.imshow(wordcloud)
得到关于伯乐在线2017年的文章的标签的使用程度如下