
Python+Python数据分析
文章平均质量分 83
Soyoger
申明:个人微信公众号:AI技术研习社,公众号ID:ai2club。本博客只是用来学习,并不从事任何商业活动,其内容是自己总结或者来自互联网搜索到的,并没有过多关注版权问题,如有侵权内容,请私信我进行删除,谢谢。本博客内容主要围绕计算机领域热点技术和工作内容,不涉及版权问题,任何人可以查看、转载。
展开
-
python3爬虫初探(一)之urllib.request
#----第一把武器-----urllib.request--------- urllib.request是python3自带的库(python3.x版本特有),我们用它来请求网页,并获取网页源码。话不多说,上代码。import urllib.request #调入要使用的库url = 'http://www.baidu.com'data = urllib.request原创 2017-10-09 15:11:33 · 779 阅读 · 0 评论 -
Scrapy保存到txt文件或者数据库里面
首先要理解yield的作用。在pipelines.py文件中定义了保存方法,但是一直没有保存,为什么呢?file = open("E:\\Scripy\\spidersitems.txt", "a") # 以追加的方式打开文件,不存在则创建 # 因为item中的数据是unicode编码的,为了在控制台中查看数据的有效性和保存, # 将其编码改为ut原创 2017-05-10 19:06:05 · 4696 阅读 · 0 评论 -
Scrapy定向爬虫教程(二)——提取网页内容
本节内容在这一小结,我将介绍如何使用Scrapy通过Selector选择器从网页中提取出我们想要的内容,并将这些内容存放到本地文件。 我们的目标网页是http://www.heartsong.top/forum.php?mod=viewthread&tid=8,一个有七层楼的帖子。我们要获取到每一层楼的下列信息:所属主题帖的标题所属主题帖的url这一楼层的作者这一楼层的发表时间这一转载 2017-05-10 16:34:40 · 1818 阅读 · 2 评论 -
scrapy需要的xpath知识点
借助于scapy的爬虫框架,能方便实现低网络数据的爬取,其中xpath如何写法,对元素的定位在爬取过程中起着至关重要的作用。以下是对xpath写法的一些经验:(1)优先遵循“自底向上”原则,即从所要爬取的字段节点出发,层层向上,向父节点去遍历,找到其他爬取的字段。 这样的好处在于,首先从自己必然要的字段出发,不会发生任何歧义或其他问题命中该字段,再从该节点出发再去层层向父元原创 2017-05-10 16:31:21 · 696 阅读 · 0 评论 -
python3爬虫实战(一)爬取创业邦创投库
从创业邦网站拉取创业公司数据入口链接:http://www.cyzone.cn/event/list-764-0-1-0-0-0-0/,要求抓取前30页。抓取以下信息:公司名称,详情URL,当前融资轮次,行业,投资方和更新时间。# -*- coding: utf-8 -*-"""Created on Sat Oct 14 15:17:52 2017@author: ESRI原创 2017-10-14 15:36:37 · 1875 阅读 · 0 评论 -
python3爬虫初探(四)之文件保存
接着上面的写,抓取到网址之后,我们要把图片保存到本地,这里有几种方法都是可以的。 #-----urllib.request.urlretrieve----- import urllib.requestimgurl = 'http://img.ivsky.com/img/tupian/t/201411/01/xiaohuangren_tupian-007.jpg'#前面获取网原创 2017-10-09 15:20:12 · 3391 阅读 · 0 评论 -
Scrapy入门(一)安装Scrapy环境
下列的安装步骤假定您已经安装好下列程序:Python 2.7Python Package: pip and setuptools. 现在 pip 依赖 setuptools ,如果未安装,则会自动安装 setuptools 。lxml. 大多数Linux发行版自带了lxml。如果缺失,请查看http://lxml.de/installation.htmlOpenSSL.原创 2017-05-06 13:23:25 · 581 阅读 · 0 评论 -
Scrapy入门(二)创建Scrapy项目
创建一个Scrapy项目定义提取的Item编写爬取网站的 spider 并提取 Item编写 Item Pipeline 来存储提取到的Item(即数据)创建项目在开始爬取之前,您必须创建一个新的Scrapy项目。进入您打算存储代码的目录中,运行下列命令:scrapy startproject tutorial该命令将会创建包含下列内容的 tu原创 2017-05-06 14:02:04 · 652 阅读 · 0 评论 -
python3爬虫初探(七)使用MySQL
MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。此外,MySQL内部有多种数据库引擎,最常用的引擎是支持数据库事务的InnoDB。安装MySQL可以直接从MySQL官方网站下载最新的Community Server原创 2017-10-09 16:21:59 · 1435 阅读 · 0 评论 -
python3爬虫初探(八)requests
几个常见的操作:import requests#from PIL import Image#from io import BytesIOdef simple_get(url): resp = requests.get(url) print(resp.status_code) print(resp.encoding) print(resp.原创 2017-10-13 11:15:05 · 634 阅读 · 0 评论 -
python3爬虫初探(二)之requests
关于请求网页,不得不提requests这个库,这是爬虫经常用到的一个第三方库,用pip安装即可。requests用法很多,这里只写一些基础的,其他高级功能可参考官方文档。import requestsurl = 'http://www.baidu.com'#这里用get方法用来请求网页,其他还有post等方法来请求网页data = requests.get(url)原创 2017-10-09 15:16:45 · 755 阅读 · 0 评论 -
python3爬虫初探(三)之正则表达式
前面已经写了如何获取网页源码,那么接下来就是该解析网页并提取需要的数据了。这里简单写一下正则表达的用法。 首先,找个要抓取图片的网站,获取源码。import requestsimport re# 获取网页源码url = 'http://www.ivsky.com/tupian/xiaohuangren_t21343/'data = requests.get(url).tex原创 2017-10-09 15:19:02 · 1046 阅读 · 0 评论 -
用BeautifulSoup来写python爬虫
爬虫定位网站:http://www.yanglao.com.cn/代码很简单,单线程,可优化的地方很多:如下:# -*- coding: utf-8 -*-"""Created on Wed Sep 27 16:37:57 2017@author: ESRI"""from bs4 import BeautifulSoup as bsimport urll原创 2017-09-27 17:17:45 · 1159 阅读 · 0 评论 -
Scrapy定向爬虫教程(一)——创建运行项目和基本介绍
前言目前网上的Scrapy中文教程比较少,而且大多教程使用的Scrapy版本较老,比如说这个Scrapy 0.25 文档,如其名,上古时期的翻译文档;再比如极客学院的视频教程使用的是1.0.x版本,跟新版相比还是有出入。这种情况使得新手入门Scrapy较为困难,而且各种掉坑。本人也是只刚入门的菜鸟,我希望能用菜鸟的语言给其他想要踏进Scrapy大门的小菜鸟指引一条道路。至少比我踩得坑少点吧^-转载 2017-05-06 15:21:16 · 741 阅读 · 0 评论 -
Scrapy匹配xpath时tbody标签的问题
问题描述今天学习Scrapy的使用,在用xpath匹配元素的时候,发现老是出错,后来发现是标签上有文章。问题分析我使用Chrome的元素审查和查看网页源代码对网页进行分析,得出xpath,但是Chrome会对网页源码进行加工,在标签中,如果源码中没有写标签,在元素审查和查看网页源代码中还是会将强行添加上。当然,若源代码中没有,而我们信任Chrome而把它添进xpath的话,是不会匹原创 2017-05-06 14:49:29 · 2869 阅读 · 1 评论 -
Scrapy定向爬虫教程(三)——爬取多个页面
本节内容本部分所实现的功能是,批量的爬取网页信息,不再是像以前那样只能下载一个页面了。也就是说,分析出网页的url规律后,用特定的算法去迭代,达到把整个网站的有效信息都拿下的目的。因为本部分讲完后,功能已经到了可以使用的地步,所以我把本部分的结果独立出来,把项目上传到了github,小伙伴可以下载参考,地址https://github.com/kongtianyi/heartsong。转载 2017-05-10 19:10:37 · 3123 阅读 · 0 评论 -
爬虫基于ADSL动态获取ip
爬虫访问中,如何解决网站限制IP的问题? 开发了一个爬虫,布置在自己的服务器上,请求某网站的查询功能,然后抓取查询结果,结果访问才一会儿,就被提示封IP了。有什么好的解决方法吗? 1. 某宝买代理,简单,但是太贵;2. ADSL动态获取ip。java代码:package com.sesame.network; import java.i原创 2017-09-27 17:41:29 · 3222 阅读 · 0 评论 -
python3爬虫初探(六)之EXCEL
在爬取数据之后,数据的保存就成为一个新的问题,一般不太大的的数据存储到EXCEL就可以了。这里介绍一个python的第三方库——xlsxwriter.这个库的安装就不介绍了,pip就可以,不用FQ。这里仅介绍一些简单常用的命令。 首先,说明一下,xlsxwriter只能写入数据,不能读取和修改数据(读取和修改可以用xlrd和xlwt)。上代码。 import xlsxwrite原创 2017-10-09 15:34:41 · 6055 阅读 · 0 评论 -
python学习笔记(十三)标准库heapq
heapq堆(heap),是一种数据结构。用维基百科中的说明:堆(英语:heap),是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。对于这个新的概念,读者不要感觉心慌意乱或者恐惧,因为它本质上不是新东西,而是在我们已经熟知的知识基础上的扩展。堆的实现是通过构造二叉堆,也就是一种二叉树。基本知识这是一颗在苏州很常见的香樟树,马路两边、公原创 2017-07-23 22:29:19 · 689 阅读 · 0 评论 -
pandas使用get_dummies进行one-hot编码
官网:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.htmlpandas.get_dummies(data,prefix=None, prefix_sep='_', dummy_na=False, columns=None,sparse=False, drop_first=False原创 2017-11-29 11:19:56 · 6294 阅读 · 0 评论 -
数据可视化(三)- Seaborn简易入门
本文数据来源:http://www.cdc.gov/nchs/nsfg.htm本文摘要:介绍一个以matplotlib为底层,更容易定制化作图的库Seaborn Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seabor原创 2017-10-26 21:21:31 · 1330 阅读 · 0 评论 -
数据可视化(二)Matplotlib pandas简易入门
本文数据来源https://github.com/fivethirtyeight/data/blob/master/college-majors/recent-grads.csv本文主要介绍了一下如何简单的探查数据之间的关系 原始数据展现(这是一份大学毕业生的薪资调查报告,重要的字段有这些,Major - 专业名称, Major_category - 专业类别, Sample_size原创 2017-10-26 21:20:33 · 1527 阅读 · 0 评论 -
数据可视化(一)-Matplotlib简易入门
本节的数据来源:https://archive.ics.uci.edu/ml/datasets/Forest+Fires原始数据展示(这张表记录了某个公园的火灾情况,X和Y代表的是坐标位置,area代表的是烧毁面积)import pandasforest_fires = pandas.read_csv('forest_fires.csv')print(forest_fires.原创 2017-10-26 21:17:04 · 752 阅读 · 1 评论 -
numpy中的where()函数
test_data=np.where(df_test>120,1,0) where算是三目运算符,where(条件,真,假)Return elements, either from x or y, depending on condition.If only condition is given, return condition.nonzero().原创 2017-11-10 19:17:42 · 9116 阅读 · 0 评论 -
Python提取数字图片特征向量
引言在机器学习中有一种学习叫做手写数字识别,其主要功能就是让机器识别出图片中的数字,其步骤主要包括:图片特征提取、将特征值点阵转化为特征向量、进行模型训练。第一步便是提取图片中的特征提取。数据的预处理关系着后面模型的构建情况,所以,数据的处理也是机器学习中非常重要的一部分。下面我就说一下如何提取图片中的特征向量。图片灰度化 =>当我们拿到一种图片的时候,这张图片可能是多原创 2017-11-10 15:40:56 · 16662 阅读 · 0 评论 -
matplotlib实践过程总结
通过本手册,你将收获以下知识:matplotlib 及环境配置数据图的组成结构,与 matplotlib 对应的名称常见的数据绘图类型,与绘制方法您可能需要以下的准备与先修知识:Python开发环境及matplotlib工具包Python基础语法Python numpy 包使用1.matplotlib 安装配置linux可以通过以下方式安装matplotlibsud原创 2017-10-24 22:20:37 · 2515 阅读 · 0 评论 -
pandas时间序列分析和处理Timeseries
pandas 最基本的时间序列类型就是以时间戳(TimeStamp)为 index 元素的 Series 类型。其它时间序列处理相关的包[P4J 0.6: Periodic light curve analysis tools based on Information Theory][p4j github]pandas时序数据文件读取dateparse = lambda d转载 2017-10-24 22:03:50 · 11988 阅读 · 3 评论 -
pandas中关于时间的处理总结
1.Transform the Date column as a datetime typeapple.Date = pd.to_datetime(apple['Date'])apple.dtypes2.Set the date as the indexapple = apple.set_index('Date')apple.head()3.Is there any原创 2017-10-24 21:19:40 · 3873 阅读 · 0 评论 -
彻底理解Python中的yield
阅读别人的python源码时碰到了这个yield这个关键字,各种搜索终于搞懂了,在此做一下总结:通常的for...in...循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件。它可以是mylist = [1, 2, 3],也可以是mylist = [x*x for x in range(3)]。它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗原创 2017-10-16 10:28:08 · 8985 阅读 · 8 评论 -
windows下的使用别人编译好的库文件进行安装xgboost
(0)前提是,你得下载好anaconda,并且安装之,我的下载地址如下(python3 windows 64位)https://repo.continuum.io/archive/Anaconda3-4.4.0-Windows-x86_64.exe(1)下载xgboost源码(这里直接用官方最新的源码,这里我们不需要用git clone --recursive,因为用的是编译好的dll原创 2017-11-09 17:22:01 · 1261 阅读 · 0 评论 -
实战xgboost与sklearn与pandas训练模型
import cPickleimport xgboost as xgbimport numpy as npfrom sklearn.model_selection import KFold, train_test_split, GridSearchCVfrom sklearn.metrics import confusion_matrix, mean_squared_errorfrom原创 2017-11-09 16:32:24 · 4018 阅读 · 0 评论 -
np.random.randint产生一个范围内的数据
在下面的例子中,生成一个15000到73001之间,398个数。owners = np.random.randint(15000, high=73001, size=398, dtype='l')ownersarray([42103, 72637, 63969, 40944, 26670, 24258, 38820, 27586, 52873, 20782, 53原创 2017-10-23 09:59:53 · 10682 阅读 · 0 评论 -
xgboost使用自定义的loss function
下面给一个官方demo代码:参考:https://github.com/dmlc/xgboost/blob/master/demo/guide-python/custom_objective.py#!/usr/bin/pythonimport numpy as npimport xgboost as xgb#### advanced: customized loss funct原创 2017-11-20 11:55:41 · 6238 阅读 · 0 评论 -
bottle创建python的rest接口
# -*- coding: utf-8 -*-"""Created on Wed Nov 15 16:00:06 2017@author: ESRI"""from PIL import Imageimport numpy as npimport pandas as pd from sklearn.externals import joblibfrom bottle import原创 2017-11-15 21:47:37 · 1289 阅读 · 0 评论 -
pandas全表查询定位某个值所在行列
# create a dataframe with an integer feature and a categorical string featuredemo_df = pd.DataFrame({'Integer Feature': [0, 1, 2, 1], 'Categorical Feature': ['socks', 'fox', 'socks', 'box']})demo_df原创 2017-12-01 13:20:22 · 22128 阅读 · 0 评论 -
python单元测试
python中的单元测试,主要有3种方式:1.unittest2.nose(nose2)3.pytest关于unittest的使用,非常简单,继承TeseCase:https://docs.python.org/2/library/unittest.html#unittest.TestCase.setUpsetUp()Method called to prepare t...原创 2018-11-15 17:45:37 · 1522 阅读 · 1 评论 -
Python打包分发工具setuptools简介
Python打包分发工具setuptools通过这个工具,可以打包安装插件,并且还可以发布到PyPI上面,具体参考:1.http://python.jobbole.com/87240/2.http://python.jobbole.com/86443/?utm_source=blog.jobbole.com&utm_medium=relatedPosts发布自己的pytho...原创 2018-10-10 20:15:35 · 574 阅读 · 0 评论 -
使用PDB调试Python程序的完整实践
从Java一路走来,习惯了使用IDEA来调试代码,平时写python也都是使用Jupyter notebook,但是现在逐渐转行到Python开发,突然在linux下进行python代码调试,就会显得有点不习惯了。下面先从python调试工具PDB开始。介绍在开发简单程序的时候,可以通过加入print或是log的方式进行程序的调试,但是对于复杂的程序这种方式往往比较困难,这时就需要引入...原创 2018-10-18 13:20:23 · 840 阅读 · 0 评论 -
常用的python命令行解析库
常用的python命令行解析库,这儿介绍3种:1.argparse2.click3.fire argparse是python自带的模块,要经历解析器初始化、参数定义、解析一套流程,使用起来有些繁琐。一篇argparse使用的文章:https://www.cnblogs.com/yymn/p/8056487.html Click 是flask作者用 Python 写的...原创 2018-09-17 19:28:25 · 2357 阅读 · 0 评论 -
using a dict on a Series for aggregation is deprecated and will be removed in a future version
python的pandas中,在统计聚合的时候,版本问题,提示不支持字典格式了。比如,下面代码这样改就可以了。 words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数": numpy.size}) 上面代码改成下面代码就可以了。应该是版本问题。 word_stat = word_df...原创 2018-08-01 13:38:20 · 7807 阅读 · 3 评论