美文网首页我爱编程
分析伯乐在线文章数据

分析伯乐在线文章数据

作者: 人机分离机 | 来源:发表于2018-02-15 20:34 被阅读0次

    一、读取文章数据

    pandas读取mysql数据到DataFrame中

    import pandas as pd
    from sqlalchemy import create_engine
    
    db_info = {'user':'root',
              'password':'',
               'host':'localhost',
               'database':'article_spider'
              }
    engine = create_engine('mysql://%(user)s:%(password)s@%(host)s/%(database)s?charset=utf8' % db_info,encoding='utf-8')
    sql = 'select * from jobbole_article;'
    df = pd.read_sql(sql , con = engine)
    

    二、数据分析

    1. 查看数据

    df.info() 查看数据信息
    df.isnull() 判断数据是否缺失
    [图片上传失败...(image-617282-1518698087842)]

    2. 清洗数据

    只保留title、creat_data、tags三个属性的数据

    df.loc[:,['create_date','title','tags']]
    

    [图片上传失败...(image-a426da-1518698087842)]
    按时间进行排序

    df.sort_values(by='create_date',ascending = False)
    

    [图片上传失败...(image-4c0fec-1518698087842)]
    将数据类型转换为日期类型并设置为索引

    df['create_date'] = pd.to_datetime(df['create_date']) #将数据类型转换为日期类型
    df = df.set_index('create_date')  # 将dcreate_date设置为索引
    

    获取2017年的文章信息及tags和title内容

    df = df['2017']
    tags = df['tags']
    title = df['title']
    

    [图片上传失败...(image-ab1994-1518698087842)]

    3.数据类型转换

    首先使用np.array()函数把DataFrame转化为np.ndarray(),再利用tolist()函数把np.ndarray()转为list类型

    tags_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.中文分词

    利用结巴分词进行中文分词操作

    import jieba    
    import pandas as pd  
    jieba.add_word('C/C++')
    segment = jieba.lcut(tags_text)
    words_df = pd.DataFrame({'segment':segment})
    words_df.head()
    

    [图片上传失败...(image-3ab9a-1518698087842)]
    进行词频统计

    import 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. 词云显示数据

    import 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年的文章的标签的使用程度如下
    [图片上传失败...(image-fef70e-1518698087842)]

    相关文章

      网友评论

        本文标题:分析伯乐在线文章数据

        本文链接:https://www.haomeiwen.com/subject/zdgqtftx.html