Python
GYT0313
邮箱:guyongtao@qq.com
展开
-
Pandas.DataFrame实现分组、排序并且为分组插入排名
1. 示例数据(各班级学生得分)import pandas as pddata_dict = {"name": ["Rose", "Jack", "Tom", "Kyle", "Jery", "Adam", "Bill", "David", "Denny", "Evan"], "class": [1, 2, 3, 1, 2, 3, 1, 2,...原创 2019-10-18 14:09:41 · 8173 阅读 · 5 评论 -
Python编写排序算法探测器
代码algorithms.pyimport random# O(n^2)def selection_sort(lyst, profiler): """选择排序""" i = 0 while i < len(lyst) - 1: min_index = i j = i + 1 while j < len(l...原创 2019-04-13 22:10:38 · 278 阅读 · 0 评论 -
Python编写选择排序、冒泡排序、插入排序和快速排序
代码import random# O(n^2)def selection_sort(lyst): """选择排序""" i = 0 while i < len(lyst) - 1: min_index = i j = i + 1 while j < len(lyst): if ly...原创 2019-04-13 22:01:24 · 431 阅读 · 0 评论 -
Python编写双向链表
1. 运行示例2. 代码double_list.py已经实现方法有限,可根据需要再次加工。"""双向链表实现:1.链表的创建2.节点的添加3.节点删除4.打印节点""""""链表结构的节点类"""class Node(object): def __init__(self, data, previous=None, next=None): ...原创 2019-04-15 16:52:10 · 526 阅读 · 0 评论 -
Python数据分析可视化示例 -- 地区与大麦品种的产值
前言数据集介绍:1931年和1932年,明尼苏达州收集了圣保罗大学农场(University Farm, St. Paul) 1/40英亩土地上种植的10个大麦品种的每英亩产量蒲式耳(bushels per英亩)数据,以及位于瓦塞卡(Waseca)、莫里斯(Morris)、克罗斯顿(Crookston)、大瀑布(Grand Rapids)和德卢斯(Duluth)的5个分站(均位于明尼苏达州)的...原创 2019-04-08 14:33:02 · 2506 阅读 · 0 评论 -
Python 绘图--matplotlib 保存图片有损、不完整
原图由于X 轴的名称过长,导致保存不完整。添加语句plt.tight_layout()添加后的图片:完!原创 2019-04-11 15:06:14 · 2392 阅读 · 3 评论 -
Linux下安装Python3.6.2步骤
1 下载安装包链接:https://pan.baidu.com/s/1NXHtUqVLb05fBViHcsw5Tg提取码:07ol2 解压xz -d Python-3.6.2.tar.xztar -xvf Python-3.6.2.tar3 编译安装创建安装目录:注:需要安装GCCmkdir /usr/local/python3编译安装:cd Python-3.6...原创 2019-03-08 14:43:55 · 974 阅读 · 0 评论 -
爬取赶集网招聘信息:Python3+requsts+正则+MySQL
1. 前言本次爬虫使用:Python3requsts 请求正则解析MySQL 存储2. 爬取结果示例时间:2018年12月25日,每个类别分别爬取 1 个分页,共获取:2673条数据。(运气好,一次运行完成,IP没有被限制)3. 运行须知运行前确保MySQL中已创建相应数据库、表运行过程中很可能报错退出,最可能的原因就是访问网站过多,IP被限制,需要验证,手动使用浏览器...原创 2018-12-25 15:36:32 · 639 阅读 · 0 评论 -
Python网络爬虫之代理池的搭建
源码地址: GitHub原创 2018-09-25 19:56:22 · 905 阅读 · 6 评论 -
Python网络爬虫之极验滑动验证码识别
极验验证码示例:验证码分析使用代码完成极验验证码的识别,需要了解一下几点:通过该验证码的识别动作为:点击并拖拽滑块-滑动滑块至缺口处-释放鼠标该验证码增加了机器学习来识别拖动的轨迹,即:人不可能实现匀速拖拽所以为解决被识别出为非人为拖拽,则控制拖拽的速度,一般人的拖拽为先加速后减速。为模拟人的行为,使用Selenium工具。代码分析:定义CrackGeetest()类,该类...原创 2018-09-23 13:42:15 · 8428 阅读 · 6 评论 -
Ubuntu16.04在Docker上安装Splash
1. 安装前请先安装Docker, 安装步骤请自行百度.2. Docker安装完成后, 启动Docker, 并且运行docker启动splash命令, 初次使用将安装Splash:sudo docker run -p 8050:8050 scrapinghub/splash安装过程受网速影响, 速度较慢. 等待程序很长时间不再有动作后, 终止程序, 然后运行以下命令:3. 安装完成...原创 2018-09-02 15:05:08 · 2758 阅读 · 2 评论 -
Selenium和ChromeDriver的安装与使用
一丶Ubuntu下的安装1. Selenium的安装命令:sudo pip3 instal selenium2. ChromeDriver的安装先确保已经安装了google浏览器. 根据已安装的google浏览器的版本选则对应的版本, 如浏览器是63版本, 则选择2.34版本的ChromeDriver. ChromeDriver下载地址: http://chromedr...原创 2018-09-01 16:56:55 · 2300 阅读 · 0 评论 -
优化递归调用斐波那锲数列--Python
代码:优化版的斐波那锲函数,使用了一个字典来保存已经调用过的、相同参数的值。"""3.6修改Fibonacci函数,使用记忆技术,接收一个字典保存参数和值。O(n)"""def fib_dic(n, dic, counter): if n < 3: return 1 keys = dic.keys() key = "fib({})".fo...原创 2019-04-14 11:31:13 · 455 阅读 · 0 评论 -
Python实现二叉搜索树--基于链表实现
前言基于链表实现二叉搜索树。代码可见GitHub:https://github.com/GYT0313/Python-DataStructure/tree/master/8-tree运行示例代码abstractcollection.py"""File: abstractcollection.pyAuthor: Ken Lambert"""class AbstractCo...原创 2019-04-21 21:39:08 · 542 阅读 · 0 评论 -
Python中时间获取、日期与时间戳的相互转换
1.获取时间导入模块:获取当前时间:In [9]: time.time()Out[9]: 1569835631.614946In [10]: arrow.now()Out[10]: <Arrow [2019-09-30T17:28:01.525159+08:00]>time.time() 得到的是当前时间的时间戳。arrow.now() 得到是以某种格式显示的时间...原创 2019-09-30 17:39:36 · 440 阅读 · 0 评论 -
从代码中简单了解单元测试(Java的JUnit和Python的unittest)
前言这段学习了很多文档,其中就包括单元测试。所以,这里写一篇博客来记录和巩固学到的知识。1. Java的JUnit 4使用Eclipse创建一个Java Project:JUnitTesting.javapackage testing;public class JUnitTesting { public int squre(int n) { return n*n; } ...原创 2019-07-08 19:08:06 · 2112 阅读 · 2 评论 -
Python数据分析及可视化案例--2018成都市公共租赁住房家庭(个人)配租信息分析
前言数据来源于成都市公共数据开放平台。数据集:http://www.cddata.gov.cn/odweb/catalog/catalogDetail.htm?cata_id=fRa2EWB1EeeM9JrcteruXg434通过分析该数据集,对成都市的租赁情况有一个基本了解,给需要租房的人们提供一定的参考。运行环境:Jupyter Notebook完整代码及数据集:https://g...原创 2019-05-16 16:15:40 · 2409 阅读 · 0 评论 -
Python中Matplotlib.pyplot 绘画饼图出现标签重叠
因为有一部分的区域占比很小,画图时紧贴在一起,所以会造成重叠。博主经过计算后的Series 是有序的,会出现最后一部分完全重叠。如:可以使用sample 方法随机取样,不过仍然有可能造成重叠。如:data = data.sample(frac=1)最有效的办法避免重叠就是将数据按照一个大小间隔排序。如:元数据为:1 2 3 4 5 6 7 8 9排序后为:1 9 3 8 7 ...原创 2019-05-14 19:54:08 · 16198 阅读 · 0 评论 -
Python自定义实现列表--基于数组和双向循环链表两种方式
前言学习过Python 的肯定知道Python内置了List()抽象数据结构。不过,本篇博客在于自定义实现列表。这里,通过底层数据结构数组和链表来实现。其中数组是基于Python内置的List实现,链表过自定义node对象实现。文件结构:完整代码可见GitHub:1. 超类无论是基于数组还是链表,这里给出了两者的超类。abstractcollection.py"""File:...原创 2019-04-20 15:23:18 · 418 阅读 · 0 评论 -
Python编写图集合
前言该篇博客介绍编写加权有向图的代码。代码可见Github:1. 运行示例导入模块并初始化图:from graph import *g = LinkedDirectedGraph()g.add_vertex("A")g.add_vertex("B")g.add_vertex("C")g.add_vertex("D")g.add_vertex("E")g.add_edg...原创 2019-04-23 22:17:56 · 576 阅读 · 0 评论 -
Python实现优先队列案例:急症室调度
前言使用优先队列来模拟“急症室调度”。优先队列基于单链表实现。病人patient 对象有两个变量:name-名称、condition-病情等级(1-3值越小越优先)。使用类似MVC形式编写完整代码GitHub:https://github.com/GYT0313/Python-DataStructure/tree/master/6-queue/er1. 运行示例示例中,先输入一...原创 2019-04-18 22:12:28 · 932 阅读 · 3 评论 -
Python实现最小生成树(Prim算法)
前言使用链表构建图,利用递归、栈实现Prim算法求取最小生成树。或许实现的结果与最小生成树的定义有区别,下面代码的结果是:穷举所有的节点,获取从任何顶点出发的一条最小权重的路径。(此代码是博主自己实现,可能存在一些找不全、甚至找不到结果的极端情况,如有错误敬请指正)文件集合:完整代码见GitHub:https://github.com/GYT0313/Python-DataStruct...原创 2019-04-27 11:04:06 · 17166 阅读 · 5 评论 -
Python编写单链表
代码list.py"""单链表实现:1.链表的创建2.节点的添加3.节点删除4.打印节点"""from node import Nodeclass Link(object): """单链表""" def __init__(self, data=None): self.head = None if data != None:...原创 2019-04-15 11:06:25 · 2765 阅读 · 0 评论 -
Python 实现队列(基于循环数组和单链表)、优先队列(单链表)
前言使用Python基于循环数组实现队列。队列符合先进先出(FIFO)原则。数组是基于列表定义的,更加严格的数据结构。假定有一个front 指向头部,rear指向尾部。默认数组容量为6。1. 代码运行示例:代码:超类文件:abstractcollection.py"""File: abstractcollection.pyAuthor: Ken Lambert"""c...原创 2019-04-17 20:02:51 · 875 阅读 · 0 评论 -
Python实现栈(基于数组和单链表两种)
前言使用Python 实现栈。两种实现方式:基于数组 - 数组同时基于链表实现基于单链表 - 单链表的节点时一个实例化的node 对象完整代码可见GitHub:https://github.com/GYT0313/Python-DataStructure/tree/master/5-stack目录结构:注:一个完整的代码并不是使用一个py文件,而使用了多个文件通过继承方式实现...原创 2019-04-17 18:02:13 · 691 阅读 · 0 评论 -
Python实现一维数组、二维网格和杂乱网格
前言代码整体框架已经实现,但细节方面如创建数组长度是否允许为0等并未实现。1. 一维数组arrays.py"""数组<variable> = Array(<capacity>, <option fill value>)"""class Array(object): def __init__(self, capacity, fill_val...原创 2019-04-14 21:28:15 · 2553 阅读 · 0 评论 -
Python实现Splash爬取网页
先开启splash:sudo docker run -p 8050:8050 scrapinghub/splash.py代码:import requestsfrom urllib.parse import quotefrom requests import ConnectionErrorlua = '''function main(splash) splash:go("...原创 2018-09-04 10:09:16 · 3844 阅读 · 0 评论 -
爬取Ajax类型数据
什么是Ajax?简单来说就是浏览网页时该页内容浏览完后, 只需要想下滑动, 自动出现新的内容, 而不需要刷新页面. 如浏览新浪微博. 爬取Ajax类型数据, 需要用程序模拟Ajax向服务器发送请求, 根据响应内容得到我们想要的数据.本文以今日头条为例, 作者使用Google浏览器首先登录今日头条搜索街拍(https://www.toutiao.com/search/?keyword...原创 2018-08-28 18:25:57 · 2716 阅读 · 0 评论 -
Django之nginx+wsgi部署
一、安装nginx 和 wsgi安装wsgi:pip install uwsgi配置uWSGI, 在项目路径下创建uwsgi.ini 文件, 配置如下:[uwsgi]#使用nginx连接时使用#socket=127.0.0.1:8080#直接做web服务器使用http=127.0.0.1:8080#项目目录chdir=/home/python/Desktop/pytes...原创 2018-05-12 14:26:43 · 9741 阅读 · 2 评论 -
Django之python3 manage.py celery worker --loglevel=info报错
继上篇文章 &amp;lt;&amp;lt;Django之celery报错&amp;gt;&amp;gt;解决后, 执行python3 manage.py celery worker –loglevel=info 再次报错:...(前面一堆报错) File &quot;/home/python/.virtualenvs/py_django/lib/python3.6/site-packages/djcelery/m原创 2018-05-11 20:54:45 · 11078 阅读 · 0 评论 -
Django之celery报错
配置完成一系列celery后,执行 python3 manage.py migrate 时报错:...(前面一堆报错)File "/home/python/.virtualenvs/py_django/lib/python3.6/site-packages/djcelery/models.py", line 217, in PeriodicTask null=True, blan...原创 2018-05-11 20:20:40 · 7262 阅读 · 3 评论 -
Django之404、500、400错误处理
要自定义处理url请求错误需要进行三步操作:主要错误有: 404错误:page not found视图 500错误:server error视图 400错误:bad request视图以404错误为例,500、404同理 我这里创建了一个应用,名为booktestStep1:修改settings.pyDEBUG = True —-改为—-> ...原创 2018-04-27 11:35:35 · 22388 阅读 · 7 评论 -
Django之创建引擎索引报错
学习Django框架时,创建一个引擎及索引时报错,具体报错如下:执行命令:python3 manage.py rebuild_index报如下错误:......(前面一堆报错)File "/home/python/Django/test6/test6/urls.py", line 20, in <module> url(r'^admin/', incl...原创 2018-05-11 13:45:28 · 6854 阅读 · 0 评论 -
Django之The _imaging C module is not install
解决Ubuntu中PIL模块The _imaging C module is not install报错第一种办法 在安装PIL模块时我直接使用sudo pip install PIL安装,导致出现The _imaging C module is not install报错. 网上查询资料后,某些博客说是缺少freetype等库,按照博客所说的指令安装,发现无法定位该软件.因此该方法没能解...原创 2018-05-04 21:09:37 · 5747 阅读 · 0 评论 -
Django之Session设置与获取
修改setting.py文件:添加代码: 设置session存储在数据库. 本次保存在MySQL数据库(注意配置和开启MySQL数据库)SESSION_ENGINE = 'django.contrib.sessions.backends.db'启用Session: Django默认启用,若没有启用在’MIDDLEWARE_CLASSES’中添加以下语句:'django.co...原创 2018-05-03 20:23:37 · 14901 阅读 · 0 评论 -
Djagno之Admin后台设置tinymce富文本编辑+上传图片
一、准备工作1. 安装tinymce: pip install django-tinymce==2.6.02. 修改settings.py文件: 1) 添加应用INSTALLED_APPS = ( ... 'tinymce',)2)在settings.py文件末尾添加配置:TINYMCE_DEFAULT_CONFIG = { 'theme'...原创 2018-05-18 22:49:41 · 6364 阅读 · 0 评论 -
Django设置cookie之中文编码出错
设置和接收cookie时,中文乱码:在学习到Django框架设置cookie时出现错误。 views.py中的代码:def cookie_set(request): response = HttpResponse("<h1>设置Cookie,请查看响应报文头</h1>") response.set_cookie('h1', '你好') ...原创 2018-04-28 20:34:27 · 7013 阅读 · 0 评论 -
Python与MySQL数据库之间的增删查改操作
使用Python操作数据库之前, 确保已经安装好MySQL和pymysql.1. 连接数据库import pymysql#创建链接db = pymysql.connect(host='localhost', user='root', password='123456', port=3306)#获得操作游标cursor = db.cursor()#查询版本号cursor....原创 2018-06-28 16:20:30 · 2823 阅读 · 0 评论 -
Python与Mongodb数据库之间的操作
1. 安装Mongodb和pymongoMongodb的安装和配置 Mongodb的安装教程请网上搜索, 安装完成后, 安装以下配置过程: 1.1 创建目录, 该目录为Mongodb数据文件的存放目录: 注: 本人使用的不是root用户, 所以修改目录的拥有者. sudo mkdir /datasudo chown -R python:python /datamkdir /...原创 2018-07-02 20:51:29 · 6831 阅读 · 1 评论 -
Python中JSON格式与字符串转换
1. 字符串转为JSON源代码:import jsonstr = '''[{ "name": "Tom", "gender": "male"}, { "name": "Jack", "gender": "male" }]'''#将字符串转为json格式print(type(str))d原创 2018-06-27 17:11:55 · 50262 阅读 · 1 评论