python
brucewong0516
这个作者很懒,什么都没留下…
展开
-
【python】DataFrame.groupby()聚合,分组级运算
pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。根据一个或多个键(可以是函数、数组或DataFrame列名)拆分pandas对象。计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。对DataFrame的列应用各种各样的函数。应用组内转换或其他运算,如规格化、线性回归、排名或选取子集等。原创 2017-12-10 23:11:29 · 86324 阅读 · 1 评论 -
【python】pd.get_dummies进行one-hot编码
离散特征的编码分为两种情况:1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3}原创 2017-12-10 22:33:51 · 4680 阅读 · 0 评论 -
【Python】主(main)函数的原理
通过:`if __name__ == '__main__':` 这个语句,我们可以实现以下几个方便的功能:1、只执行本次脚本的函数或者类,进行测试;2、防止被导入的模块的函数或者类被二次执行。原创 2017-12-17 13:10:51 · 8870 阅读 · 1 评论 -
【python】详解numpy库与pandas库axis=0,axis= 1轴的用法
对数据进行操作时,经常需要在横轴方向或者数轴方向对数据进行操作,这时需要设定参数axis的值:axis = 0 代表对横轴操作,也就是第0轴;axis = 1 代表对纵轴操作,也就是第1轴;numpy库中横轴、纵轴 axis 参数实例详解:In [1]: import numpy as np#生成一个3行4列的数组In [2]: a = np.arange(12).resha原创 2018-01-11 10:15:04 · 43200 阅读 · 10 评论 -
【python】详解python数据结构堆(heapq)库使用
数据结构堆(heap)是一种优先队列。使用优先队列能够以任意顺序增加对象,并且能在任意的时间(可能在增加对象的同时)找到(也可能移除)最小的元素,也就是说它比python的min方法更加有效率。1、heappush(heap,n)数据堆入In [1]: import heapq as hqIn [2]: import numpy as npIn [3]: data = np.ara原创 2018-01-12 13:04:29 · 42802 阅读 · 1 评论 -
【python】python中的类,对象,方法,属性初认识(一)
面向对象编程需要使用类,类和实例息息相关,有了类之后我们必须创建一个实例,这样才能调用类的方法。首先看一下类的结构模式:class类名>: 类的私有属性:__private_attrs 两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs类的方法:在类地内部,使用def关键字可以为类定义一个方法原创 2018-01-21 01:08:32 · 18526 阅读 · 10 评论 -
【python】详解类class的方法:实例方法、类方法、静态方法(三)
在一个类中,可能出现三种方法,实例方法、静态方法和类方法,下面来看看三种方法的不同:1、实例方法实例方法的第一个参数必须是”self”,实例方法只能通过类实例进行调用,这时候“self”就代表这个类实例本身。通过”self”可以直接访问实例的属性。class person(object): tall = 180 hobbies = [] def __in原创 2018-01-21 13:34:06 · 8025 阅读 · 4 评论 -
【python】详解类class的属性:类数据属性、实例数据属性、特殊的类属性、属性隐藏(二)
自上一篇python中的类,对象,方法,属性初认识(一)认识了类的基本架构,下面继续对类进行详解,更加深入了解类的属性、方法、访问控制这三个方面的类容。紧接上一篇类的实例:class person(): tall = 180 def __init__(self,name,age,weight): self.name = name self原创 2018-01-21 13:15:27 · 17186 阅读 · 10 评论 -
【python】详解类class的访问控制:单下划线_与双下划线__(四)
Python中没有访问控制的关键字,例如private、protected等等。但是,在Python编码中,有一些约定来进行访问控制。1、单下划线”_”在Python中,通过单下划线”“来实现模块级别的私有化,变量除外。一般约定以单下划线”“开头的函数为模块私有的,也就是说”from moduleName import * “将不会引入以单下划线”_”开头的函数。现在有一个模块原创 2018-01-21 16:40:50 · 21047 阅读 · 2 评论 -
【python】详解类class的方法解析顺序MRO(Method Resolution Order)(六)
在【python】详解类class的继承、init初始化、super方法(五)详见链接一文中通过super的方法使得子类调用父类的属性或函数方法。正是因为class有方法解析顺序MRO。此文将详解MRO运行逻辑。Python的多继承类是通过MRO的方式来保证各个父类的函数被逐一调用,而且保证每个父类函数只调用一次(如果每个类都使用super)混用super类和非绑定的函数是一个危险行为,这原创 2018-01-22 00:20:15 · 2947 阅读 · 0 评论 -
【python】详解类class的通过__slots__限制类实例对象的属性(七)
当我们通过一个类创建了实例之后,仍然可以给实例添加属性,但是这些属性只属于这个实例。有些时候,我们可以需要限制类实例对象的属性,这时就要用到类中的_ _slots _ _ 属性了。_ _ slots_ _属性对于一个tuple,只有这个tuple中出现的属性可以被类实例使用。class person(object): __slots__ = ("name", "age","weig原创 2018-01-22 01:07:57 · 1043 阅读 · 0 评论 -
【python】详解类class类的构造函数__new__和初始化函数__init__及定制一个类(终章)
首先回顾之前类的所有篇章:【python】python中的类,对象,方法,属性初认识(一)详见链接【python】详解类class的属性:类数据属性、实例数据属性、特殊的类属性、属性隐藏(二)详见链接【python】详解类class的方法:实例方法、类方法、静态方法(三)详见链接【python】详解类class的访问控制:单下划线与双下划线_(四)详见链接【python】详解类cla原创 2018-01-22 10:41:09 · 17911 阅读 · 1 评论 -
【python】详解time模块功能asctime、localtime、mktime、sleep、strptime、strftime、time等函数以及时间的加减运算
在Python中,与时间处理相关的模块有:time、datetime以及calendar。学会计算时间,对程序的调优非常重要,可以在程序中狂打时间戳,来具体判断程序中哪一块耗时最多,从而找到程序调优的重心处。这里先来讲一个time模块。time模块所包含的函数能够实现以下功能:获取当前的时间、操作时间和日期、从字符串读取时间及格式化时间为字符串。timestamp时间戳,时间戳表示的是从原创 2018-01-12 15:46:35 · 21083 阅读 · 6 评论 -
【python】使用pickle模块将数据永久保存,pickle.dump()序列化、pickle.load()反序列化实例详解
Python提供两个模块来实现序列化:cPickle和pickle。这两个模块功能是一样的,区别在于cPickle是C语言写的,速度快,pickle是纯Python写的,速度慢,跟cStringIO和StringIO一个道理。用的时候,先尝试导入cPickle,如果失败,再导入pickle:In [1]: try: ...: import cPickle ...: exce原创 2018-01-13 23:05:25 · 6987 阅读 · 1 评论 -
【python】使用pickle模块将pickle.dump()、pickle.load()封装实例详解
为了让函数调用更加简洁方便,可以将pickle和unpickle调用封装在函数中,在函数中同时还打开文件,并将对象的序列化存储在文件中。# -*- coding: utf-8 -*-"""Created on Sun Jan 14 10:45:31 2018filepickle.py@author: BruceWong"""try: import cPickleex原创 2018-01-14 11:10:36 · 2842 阅读 · 0 评论 -
【python】numpy库linspace相同间隔采样 详解
linspace可以用来实现相同间隔的采样; numpy.linspace(start,stop,num=50,endpoint=True,retstep=False, dtype=None) 返回num均匀分布的样本,在[start, stop]。Parameters(参数): start : scalar(标量) The starting value of the sequen原创 2018-01-04 23:49:40 · 15484 阅读 · 0 评论 -
【python】详解lambda匿名函数以及结合map、reduce、filter、sorted等使用
简单来说, lambda 表达式通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。lambda只是一个表达式,函数体比def简单很多lambda的主体是一个表达式,而不是一个代码块。仅仅能表达有限的逻辑lambda表达式是起到一个函数速写的作用,允许在代码内嵌入一个函数的定义lambda格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值原创 2018-01-23 00:05:11 · 2509 阅读 · 0 评论 -
【python】如何批量读取文件夹的所有文件数据,os模块与open函数结合使用实例
很多时候,由于数据众多,分别保存在文件夹里,此时需要批量打开文件读取,然后对数据整合进行操作。那么就必须通过使用os模块和open函数相结合,通过os模块得到全部的文件,然后通过open函数打开文件读写。1、创建一个文件夹test_file,里面包含4个文件 2、通过os模块读取文件夹的所有文件In [1]: import osIn [2]: os.listdir(r'C:\Use原创 2018-01-15 11:11:12 · 41164 阅读 · 13 评论 -
【python】函数调用的参数规则、位置参数、关键参数、任意参数与解包
Python 的函数在声明参数时大概有下面 四 种形式:不带默认值的:def func(a): pass ;a就是不带默认值的参数,也叫位置参数;带有默认值的:def func(a, b = 1): pass ;b是带默认值的参数 ,也叫关键参数;任意位置参数:def func(a, b = 1, *c): pass ;c是任意位置参数任意键值参数:def func(a, b = 1,原创 2018-01-05 21:27:42 · 4916 阅读 · 0 评论 -
【python】详解装饰器@的使用:性能测试、装饰器参数、调用顺序、内置装饰器
python中使用’@’ 作为函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,出现在函数定义的前一行,不允许和函数定义在同一行。一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西。装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。1、通过装饰器原创 2018-01-23 11:33:22 · 1702 阅读 · 0 评论 -
【python】详解zipfile模块读取处理压缩文件实例
zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的。zipfile模块常用的一些操作和方法:一、is_zipfile(filename),测试filename的文件,看它是否是个有效的zipfileIn [1]: import zipfileIn [2]: zipfile.is_zipfile(r'C:原创 2018-01-15 14:42:26 · 33045 阅读 · 1 评论 -
【python】详解zip函数的操作之数据重组
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。1、生成的xyz是一个zip对象In [1]: x = [1, 2, 3] ...:原创 2018-01-14 15:05:07 · 2137 阅读 · 0 评论 -
【python】详解map函数的用法之函数并行作用解析
Python函数编程中的map(func, seq1[, seq2,…]) 函数是将func作用于seq中的每一个元素,其中seq须是可迭代对象,并将所有的调用的结果作为一个list返回。如果func为None,作用同zip()。本文参考自:Python中map()函数浅析一文,感谢精彩分享。下面举得例子来帮助我们更好的理解这个工作过程:1、对可迭代函数’iterable’中的每一个元原创 2018-01-14 22:27:39 · 5899 阅读 · 0 评论 -
【python】os模块的操作介绍
os,语义为操作系统,模块提供了访问多个操作系统服务的功能,可以处理文件和目录这些我们日常手动需要做的操作。os和它的子模块os.path还包括一些用于检查、构造、删除目录和文件的函数,以及一些处理路径的函数(os.path.jion()\os.path.split()可以在大部分情况下忽略os.pathsep)。os模块的常用功能:1 、os.name #显示当前使用的平台原创 2018-01-06 10:35:13 · 2013 阅读 · 0 评论 -
【python】sys模块操作使用
sys是python中较为常用的一个模块,他提供了对python脚本运行时的环境的操作。sys让我们能够访问与python解释器联系紧密的函数和变量。1、sys.argv #将python脚本运行时的脚本名以及参数作为一个list,并输出。# -*- coding: utf-8 -*-"""Created on Fri Jan 5 23:24:34 2018自定义文件库原创 2018-01-07 11:24:23 · 6776 阅读 · 0 评论 -
【python】集合操作set函数去重与集合、数组、元组中交集(intersection)、并集(union)、差集(difference)、对称差集(sysmmetric difference)
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素。 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算。 sets 支持 x in set的bool运算判别x是否在集合内, len(set)集合的长度,和 for x in set对集原创 2018-01-08 09:50:20 · 7066 阅读 · 0 评论 -
【python】简要Excel文件读取操作xlrd模块与xlwt模块的使用
创建一个 Excel 表格,新建一个名为 sample 的 sheet ,并在 A1 、 B1 的位置写上’wo’、’love’:#导入写的模块import xlwt#生成Excel表xls = xlwt.Workbook()#生成一个sample的文件sheet = xls.add_sheet('sample')#在第一个位置写上'wo'sheet.write(0, 0, 'w原创 2018-01-17 09:12:45 · 469 阅读 · 0 评论 -
【python】详解异常(Exception)信息捕捉获取与处理
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置并进行调试。python用异常对象(exception object)来表示异常。遇到错误后会引发异常,如果异常未被处理或捕捉,程序就会用所谓的回溯(traceback)终止执行。1、raise语句 为了引发异常,可以使用一个类(应该是exception的子类)或者实例参数调用raise语句。使用类时,程序会自动创建原创 2018-01-24 23:28:43 · 11202 阅读 · 1 评论 -
【python】详解enumerate函数用法
1、内置函数enumerate(iterable[, start])的官方说明:class enumerate(object) | enumerate(iterable[, start]) -> iterator for index, value of iterable | | Return an enumerate object. iterable must be another原创 2018-01-25 10:05:06 · 3265 阅读 · 0 评论 -
【python】解析Excel中使用xlrd库、xlwt库操作,使用xluils库修改Excel文件详解(三)
之前介绍了读和写excel,前两种都不是修改excel的,但是在实际的工作中,经常会遇到修改已经存在的Excel文件这种需求。xlrd中put_cell可以实现原表格上简单的写入,而xlwt直接生成新的表格,并不是在原表格的基础上进行修改。通常方法逻辑就是:先打开这个excel,然后将内容读入到内存,进行处理,然后写到一个新的同名excel文件中,最后直接用修改后的excel文件覆盖了老的ex原创 2018-01-17 11:30:44 · 2216 阅读 · 0 评论 -
【python】解析Excel中使用xlrd库、xlwt库操作,写入Excel文件详解(二)
Python中使用的是xlwt模块来生成Excel文件,并且可以控制单元格的格式。xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。下面就让我们看看写excel文件的流程及需要使用的函数吧。写excel前也必须先导入该模块(import xlwt)。流程如下:1、创建工作表(workbook)Workbook类初始化时有原创 2018-01-17 10:35:12 · 2943 阅读 · 0 评论 -
【python】解析Excel中使用xlrd库、xlwt库操作,读取Excel文件详解(一)
上文提供了Excel文件读写操作的基本模板,本文进一步详解这两个模块的功能。一、Book(class) 由xlrd.open_work(“example.xls”)返回nsheets: sheets数sheet_names: sheet名称列表sheets: s原创 2018-01-17 10:06:06 · 5883 阅读 · 0 评论 -
【python】numpy库数组拼接np.concatenate官方文档详解与实例
在实践过程中,会经常遇到数组拼接的问题,基于numpy库concatenate是一个非常好用的数组操作函数。1、concatenate((a1, a2, …), axis=0)官方文档详解concatenate(...) concatenate((a1, a2, ...), axis=0) Join a sequence of arrays along an existi原创 2018-01-25 11:00:49 · 209262 阅读 · 15 评论 -
【python】解析Excel中使用xlrd库、xlwt库操作,写入excel进阶完整脚本实例(五)
写excel的难点可能不在构造一个workbook的本身,而是填充的数据,不过这不在范围内。在写excel的操作中也有棘手的问题,比如写入合并的单元格就是比较麻烦的,另外写入还有不同的样式。本次拟构建以下即要用xlwt实现的东西: 完整脚本实例如下:# -*- coding: utf-8 -*-"""Created on Thu Jan 18 00:26:42 2018ex原创 2018-01-18 01:12:00 · 989 阅读 · 0 评论 -
【python】解析Excel中使用xlrd库、xlwt库操作,读取excel进阶完整脚本实例(四)
本次主要通过脚本展现使用xlrd库、xlwt库的完整操作,对象是比较常见的表格,通过这两个脚本的学习,实现对Excel的进阶操作。首先,我们定义一个表格example_excel.xls,如图所示:完整脚本如下:# -*- coding: utf-8 -*-"""Created on Wed Jan 17 15:31:36 2018excel读取操作脚本@author:原创 2018-01-17 16:43:49 · 756 阅读 · 0 评论 -
【python】numpy之random库简单的随机数据生成.rand()、.randint()、.randn()、.random()等(一)
在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面进行汇总并一一实例学习。第一篇总结简单的随机数据库的生产,主要常用的函数有np.random.rand()、.randint()、.randn()、.random()等.1、np.random.rand(d0, d1, …, dn) 根据给定维度生原创 2018-01-09 12:14:58 · 21373 阅读 · 0 评论 -
【python】numpy之random库简单的随机排列.shuffle(x)、.permutation(x)(二)
对给定的数组进行重新排列的方式主要有两种:np.random.shuffle(x) 现场修改序列,改变自身内容。(类似洗牌,打乱顺序)np.random..permutation(x) 返回一个随机排列1、np.random.shuffle(x)#现场修改序列,改变自身内容。(类似洗牌,打乱顺序)In [30]: arr = np.arange(10)In [31]: n原创 2018-01-09 14:04:23 · 36964 阅读 · 2 评论 -
【python】pandas库pd.read_csv操作读取分隔符csv文件和文本text文件参数整理与实例
pandas.read_csv可以读取CSV(逗号分割)文件、文本类型的文件text、log类型到DataFrame一、pandas.read_csv常用参数整理也支持文件的部分导入和选择迭代,更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html参数:filepath_or_buffer :可以是URL,可用URL类原创 2018-01-18 11:19:43 · 167215 阅读 · 2 评论 -
【python】numpy库数组拼接快捷方式horizontal&vertical、np.c_、np.column_stack等官方文档详解与实例
上一篇用到了np.concatenante方法处理数组拼接问题,这个方法在pandas库同样有pd.concat的方法对应,因而选择上述方法会比较熟悉且常用,详见上一篇博客:【python】numpy库数组拼接np.concatenate官方文档详解与实例。对于数组处理的方法还是有很多,下面进一步详解其他方式,方便在实操过程中有更多的选择。1、np.vstack & np.hstack原创 2018-01-26 12:02:44 · 6434 阅读 · 0 评论 -
【python】pandas库pd.read_excel操作读取excel文件参数整理与实例
除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作;且pandas操作更加简介方便。首先是pd.read_excel的参数:函数为:pd.read_excel(io, sheetname=0,header=0,skiprows=None,index_col=None,names=None, arse_原创 2018-01-18 15:51:32 · 369766 阅读 · 26 评论