码迷,mamicode.com
首页 > 编程语言 > 详细

python爬虫--百度风云榜--pandas画趋势图

时间:2016-05-10 12:40:25      阅读:775      评论:0      收藏:0      [点我收藏+]

标签:

好久没有更新博客,最近做了一个小项目,利用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

结果如下:

 

python爬虫--百度风云榜--pandas画趋势图

标签:

原文地址:http://www.cnblogs.com/SSSR/p/5201834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!