zoukankan      html  css  js  c++  java
  • python爬虫--百度风云榜--pandas画趋势图

    好久没有更新博客,最近做了一个小项目,利用python爬虫功能,每天记录爬取百度风云榜的数据,然后画出趋势图,从而预测旅游城市热度。

    原本准备用pandas直接读取table,后来发现pandas不能打包成exe,就只能放弃,尝试了petl也失败了。

    在画图的过程中出现了中文无法显示的问题,查询得出是因为matplotlib的问题,没有引入中文字体。

    先上分析代码

    import os 
    import pandas as pd
    rootdir='C:/files'
    #先删除一下result.csv
    #获取目录下面的所有文件路径
    def get_all_filepath(rootdir): filepath_list=[] for parent,dirnames,filenames in os.walk(rootdir): for filename in filenames: filepath_list.append(parent+'/'+filename) #print "the full name of the file is:" + os.path.join(parent,filename) return filepath_list filepath_list=get_all_filepath(rootdir) print filepath_list df=pd.read_csv(filepath_list[0]) dfs=[] for filepath in filepath_list[1:len(filepath_list)-1]: #将字符串转化成变量 #locals()['var']=2345 #vars()['var']=567 print filepath dfs.append(pd.read_csv(filepath)) for item in dfs: df=pd.merge(df,item,how='outer',on='city', suffixes=('_x', '_y')) #df.to_csv('C:/files/result.csv',encoding='gbk') #df1=df[df['city'].isin([u'香港',u'马尔代夫',u'青岛',u'三亚',u'济州岛',u'东京'])] df1=df[df['city'].isin(['香港','马尔代夫','青岛','三亚','济州岛','东京'])] #df.query("city in ('香港','马尔代夫')") #df1.query("city not in ('香港','马尔代夫')") df2=df1.T df2.columns=df2.iloc[0,:] df2=df2.drop('city',axis=0).astype(float) df2['day']=pd.date_range('20160127','20160218') print df2.columns.name #df2.index.name df2.columns.name=u'城市'#df2.index.name也可以赋值。 df2.plot(x='day',title=u'目的地城市搜索趋势')#不支持中文。#不支持中文,是因为中文字体问题,pandas的绘图基于matplotlib所以把matplotlib的显示 #中文的问题解决了,自然中文就行显示出来了,参见http://www.pythoner.com/200.html

    结果如下:

  • 相关阅读:
    Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动
    Python3漏洞扫描工具 ( Python3 插件式框架 )
    Linux 防火墙
    基于Python3的漏洞检测工具 ( Python3 插件式框架 )
    git学习笔记
    sublime text 3 优化配置
    win10 出现0x80072efd错误
    Ubuntu搭建NFS服务器,NFS协议详细分析
    docker实现跨主机连接
    Python-RabbitMQ(持久化)
  • 原文地址:https://www.cnblogs.com/SSSR/p/5201834.html
Copyright © 2011-2022 走看看