def

python时间序列分析

大城市里の小女人 提交于 2020-12-31 04:37:42
转载自 最小森林-python时间序列分析 一、什么是时间序列 时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值。 在这里需要强调一点的是,时间序列分析并不是关于时间的回归,它主要是研究自身的变化规律的(这里不考虑含外生变量的时间序列)。 环境配置 python作为科学计算的利器,当然也有相关分析的包:statsmodels中tsa模块,当然这个包和SAS、R是比不了,但是python有另一个神器:pandas!pandas在时间序列上的应用,能简化我们很多的工作。这两个包pip就能安装。 数据准备 许多时间序列分析一样,本文同样使用航空乘客数据(AirPassengers.csv)作为样例。 下载链接 。 用pandas操作时间序列 # -*- coding:utf-8 -*- import numpy as np import pandas as pd from datetime import datetime import matplotlib.pylab as plt # 读取数据,pd.read_csv默认生成DataFrame对象,需将其转换成Series对象 df = pd.read_csv( ' AirPassengers.csv ' , encoding= ' utf-8 ' , index_col= ' Month '

MySQL server has gone away && Lost connection to MySQL server during query

喜你入骨 提交于 2020-12-31 04:36:18
问题一、MySQL server has gone away # #### peewee from peewee import * from peewee import __exception_wrapper__ class RetryOperationalError(object): def execute_sql(self, sql, params=None, commit= True): try : cursor = super(RetryOperationalError, self).execute_sql(sql, params, commit) except OperationalError: if not self.is_closed(): self.close() with __exception_wrapper__ : cursor = self.cursor() cursor.execute(sql, params or ()) if commit and not self.in_transaction(): self.commit() return cursor class RetryMySQLDatabase(RetryOperationalError, MySQLDatabase): def sequence_exists(self, seq): pass

Django_rest_framework_渲染器/解析器/路由控制/分页

浪尽此生 提交于 2020-12-30 09:01:38
目录 渲染器 解析器 路由控制 分页 渲染器 简介 什么是渲染器 根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件。 渲染器的作用 序列化、友好的展示数据 渲染器配置 首先要在settins.py中将rest_framework组件加进去 局部配置渲染器 引入渲染器类,然后将他们作为一个列表的元素赋值给renderer_classes 配置属性,如下: 1 2 3 4 5 6 from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer class BookViewSet(APIView): renderer_classes = [JSONRenderer,BrowsableAPIRenderer] def get( self ,request): return Response( '...' ) BrowsableAPIRenderer的渲染效果如下 1 JSONRenderer类的就是只渲染数据,如下: 可以看到,只是简单的数据展示 全局配置渲染器 在setting.py文件中加入如下配置: 1 2 3 4 5 REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES' :[ 'rest_framework.renderers

Django Rest Framework(分页、视图、路由、渲染器)

↘锁芯ラ 提交于 2020-12-30 07:54:32
一、分页 试问如果当数据量特别大的时候,你是怎么解决分页的? 方式a、记录当前访问页数的数据id 方式b、最多显示120页等 方式c、只显示上一页,下一页,不让选择页码,对页码进行加密 1、基于limit offset 做分页(如:在url后面加上?offset=0&limit=2,即代表从第0条开始,往后取2条(即1,2)) from rest_framework.pagination import LimitOffsetPagination 1 urlpatterns = [ 2 url(r ' ^admin/ ' , admin.site.urls), 3 url(r ' ^app01/(?P<version>[v1|v2]+)/ ' , include( ' app01.urls ' )) 4 5 ] urls.py 1 urlpatterns = [ 2 url(r ' ^index1/ ' , views.IndexView1.as_view()), 3 url(r ' ^index2/ ' , views.IndexView2.as_view()), 4 url(r ' ^index3/ ' , views.IndexView3.as_view()), 5 url(r ' ^index4/ ' , views.IndexView4.as_view()), 6 url

filter、map、sorted和reduce函数

狂风中的少年 提交于 2020-12-29 19:15:55
内置函数——filter、ma p和reduce filter filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数: def is_odd(x): return x % 2 == 1 然后,利用filter()过滤掉偶数: >>>list(filter(is_odd, [ 1 , 4 , 6 , 7 , 9 , 12 , 17 ])) 结果: [ 1 , 7 , 9 , 17 ] 利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串: def is_not_empty(s): return s and len(s.strip()) > 0 >>>list(filter(is_not_empty, [ ' test ' , None, '' , ' str ' , ' ' , ' END ' ])) 结果: [ ' test ' , ' str ' , ' END ' ] 注意: s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。 当rm为空时

内置函数(sorted、map、enumerate、filter、reduce)

亡梦爱人 提交于 2020-12-29 18:37:42
1、sorted() 语法: sorted(iterable, cmp=None, key=None, reverse=False) 把iterable中的items进行排序之后,返回一个新的列表,原来的iterable没有任何改变 1、iterable:iteralbe指的是一个可迭代类型。iterable主要包括3类: 第一类是所有的序列类型,比如list(列表)、str(字符串)、tuple(元组)。 第二类是一些非序列类型,比如dict(字典)、file(文件)。 第三类是你定义的任何包含__iter__()或__getitem__()方法的类的对象。 2、cmp: 指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。 3、key:指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。 4、reverse:是一个布尔值。如果设置为True,列表元素将被降序排列,默认为升序排列。 通常来说,key和reverse比一个等价的cmp函数处理速度要快。这是因为对于每个列表元素,cmp都会被调用多次,而key和reverse只被调用一次。 注意: 列表本身还有自己sort方法

内置函数map, reduce, filter 的使用

扶醉桌前 提交于 2020-12-29 17:53:32
内置函数map, reduce, filter 的使用方法类似,均为:第一个输入参数是函数,第二参数时sequence。 map 对sequence的item 依次执行 函数。此处的函数可以是函数,自定义函数,匿名函数lambda。 基本使用方法: map(function, sequence) 使用中需要注意的是,在python2.7中,执行上述代码便可以直接显示结果,但在python3下,返回的结果需要重置类型,比如list,才能打印输出。 1 """ 依次执行 """ 2 # map(str, range(5)) python 2.7下,这样就能直接显示结果,但在python 3下,这样显示不出结果也不能调用。 3 # 需要:list一下 4 ls = map(str, range(5 )) 5 rs = list(ls) 6 print (rs) 7 # 匿名函数 8 rs1 = list(map( lambda x: x+1, range(5 ))) 9 print (rs1) 10 # 自定义函数 11 def func(x): 12 return x**2 13 rs2 = list(map(func, range(8 ))) 14 print (rs2) 15 16 # 对于多参数,可以使用多参数的函数 17 def func1(x,y): 18 return x+

Python学习之路:一天搞定基础部分

Deadly 提交于 2020-12-29 10:57:46
~代表省略的内容,如变量名、字符串等等 1、Pyhton中比较特别的运算: **:代表指数运算,例如2**3 = 8 //:代表整除运算,这一点和Java不同 2、Python的注释: #:单行注释 """~""":多行注释 3、Python最常见的三种数据类型: int、float、str 再来一个不常见的NoneType的唯一值:None 区分大小写 4、input相关: input输入的东西最后都被转化为字符串 5、强制类型转换: int->str:int(str); str->int:str(int); ... 6、求取字符串长度: len(str); 7、选择结构: if~: ... elif~: ... else: ... 8、For循环: for i in range(n): ... range(fi,en,step-len) 9、import导包: Python叫导入模块 import math,sys,random,os 奇巧淫技:from ~ import * 这样导包可以不加前缀 10、提前结束程序: sys.exit() 要提前导包 import sys 11、print的常用技巧: end: print('hello',end='') print('world') 输出helloworld sep: print('a','b')输出a b print('a

Django--ORM

跟風遠走 提交于 2020-12-29 10:13:17
一、ORM介绍 1.ORM概念   对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据存在的互不匹配的现象的技术。   简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。   ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2.ORM由来   让我们从O/R开始。字母O起源于“对象”(Object)。而R则来自于“关系”(Relational)。   几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。   按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。 3.ORM的优势 ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的第一个实例对应表中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。 让软件开发人员专注业务逻辑的处理,提高了开发效率。 4.ORM的劣势 ORM的缺点是会在一定程序上牺牲程序的执行效率。 ORM用多了SQL语句就不会写了

Scrapy笔记(1)- 入门篇

亡梦爱人 提交于 2020-12-29 07:41:16
Scrapy笔记01- 入门篇   Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘, 信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取(更确切来说,网络抓取)所设计的, 也可以应用在获取API所返回的数据(比如Web Services)或者通用的网络爬虫。   Scrapy也能帮你实现高阶的爬虫框架,比如爬取时的网站认证、内容的分析处理、重复抓取、分布式爬取等等很复杂的事。 安装scrapy   我的测试环境是centos6.5   升级python到最新版的2.7,下面的所有步骤都切换到root用户   由于scrapy目前只能运行在python2上,所以先更新centos上面的python到最新的 Python 2.7.11 , 具体方法请google下很多这样的教程。 先安装一些依赖软件 yum install python-devel yum install libffi-devel yum install openssl-devel 然后安装pyopenssl库 pip install pyopenssl 安装xlml yum install python- lxml yum install libxml2 - devel yum install libxslt -devel 安装service-identity