自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 python的@property有什么用?

事实上,对于Circle类,由于未实例化,Circle.radius是没有意义的,但是Circle.area是有意义的,这是由于__init__里的部分是只有实例化才可以正常享用的,而Circle.area本质上是一个函数,只是python通过其内置的方法,约定俗成将其称为,(里面的内存地址为实测的结果)。事实上,@property的真实调用是在property函数中将其下一行def的函数作为输入变量,为下一行的函数增加功能。

2022-11-27 23:47:00 411 1

原创 python 处理pandas的panel数据

与pd.Series和pd.DataFrame类似,pd.Panel是pandas的数据容器之一,它是用来处理具有三个维度的数据的。进而pd.Panel有3个轴(axis),分别是:以某个金融数据集stkpoolClose为例,该panel的数据包如下其中,items为四种股票,major_axis实际为日期,minor_axis为行情类型。以stkpoolClose['601318.SH']访问该数据包,得到结果如下以stkpoolClose.minor_xs('close')访问该数据包,得

2022-06-13 15:05:45 1828

原创 Python 描述符简述

Python 中,通过使用描述符,可以让程序员在引用一个对象属性时自定义要完成的工作。本质上看,描述符就是一个类,只不过它定义了另一个类中属性的访问方式。换句话说,一个类可以将属性管理全权委托给描述符类。描述符是 Python 中复杂属性访问的基础,它在内部被用于实现 property、方法、类方法、静态方法和 super 类型。描述符类基于以下 3 个特殊方法,换句话说,这 3 个方法组成了描述符协议:其中,实现了 setter 和 getter 方法的描述符类被称为数据描述符;反之,如果只实现了 get

2022-06-01 10:48:20 452

原创 Python装饰器中@property深度详解

之前有写了两篇关于装饰器、property的用法,感觉虽然可能很长,但是有些冗杂。本文讲依据官方文档,进行一些更加深入浅出的讲解。在没有@property修饰的情况下,需要分别声明get、set、delete函数,然后初始化property类,将这些方法加载进property中。下面以class C为例,其中,class C持有property的实例化对象x。当class C对外表现出来C().x时,实际上是调用C()中的x(property类)中设置的fset,fget,fdel,分别对应getx,set

2022-06-01 10:02:29 762

原创 Python @property装饰器详解

之前的文章中,我们探究了@后接某个自定义函数的用法,实际上,更常见、完备、简单的应用在于对@和python内置的函数进行结合;这可以避免造轮子的行为。我们知道, Python 内置了3种函数装饰器,分别是 @staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。而本文的目的,是以@property为例,对内置函数的装饰器应用进行探究,以明了其应用范围。pro

2022-05-31 19:04:35 18969

原创 Python 闭包、命名空间,和对象的作用域

本文简述了python中闭包、命名空间、和对象作用域的基本含义。文章内容基于python文档与个人在编译器中的试验,具有一定参考意义。

2022-05-31 11:36:11 213

原创 Python 类中的object是什么

在python中,object是一个我们会经常遇到的词汇,那么这个词汇究竟有什么含义呢?通过查阅一些文档,我们发现,object其实是一个类的实例,而这个类的名字是Object(默认类的命名首字母大写),它是所有类的父类,换句话说,python是默认所有的类都继承自Object类。而如abc(抽象基类)等其他的内置的类都是基于Object类的一些功能实现的。可以说,Object类规定了类的结构,加载方式,常用函数等。对Object类的常见应用主要有以下两个形式,python2和python3#以前的写

2022-05-30 18:44:13 18922

原创 Python @函数装饰器及用法

@函数装饰器简述Python 内置了3种函数装饰器,分别是 @staticmethod、@classmethod 和 @property,其中 staticmethod()、classmethod() 和 property() 都是 Python 的内置函数。那么,函数装饰器的工作原理是怎样的呢?假设用 funA() 函数装饰器去装饰 funB() 函数,如下所示:#funA 作为装饰器函数def funA(fn): #... fn() # 执行传入的fn参数 #....

2022-05-29 14:21:52 172

原创 Python运算符重载及其可重载运算符

每个类型都有其独特的操作方法,例如列表类型支持直接做加法操作实现添加元素的功能,字符串类型支持直接做加法实现字符串的拼接功能,也就是说,同样的运算符对于不同序列类型的意义是不一样的,这是怎么做到的呢?其实在 Python 内部,每种序列类型都是 Python 的一个类,例如列表是 list 类,字典是 dict 类等,这些序列类的内部使用了一个叫作“重载运算符”的技术来实现不同运算符所对应的操作。所谓重载运算符,指的是在类中定义并实现一个与运算符对应的处理方法,这样当类对象在进行运算符操作时,系统

2022-05-29 13:58:13 934

原创 Python生成器详解

生成器本质上也是迭代器,不过它比较特殊。以 list 容器为例,在使用该容器迭代一组数据时,必须事先将所有数据存储到容器中,才能开始迭代;而生成器却不同,它可以实现在迭代的同时生成元素。也就是说,对于可以用某种算法推算得到的多个数据,生成器并不会一次性生成它们,而是什么时候需要,才什么时候生成。不仅如此,生成器的创建方式也比迭代器简单很多,大体分为以下 2 步:定义一个以 yield 关键字标识返回值的函数; 调用刚刚创建的函数,即可创建一个生成器。举个例子:def intNum(

2022-05-29 13:52:03 160

原创 Python迭代器及其用法

列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭代器。从字面来理解,迭代器指的就是支持迭代的容器,更确切的说,是支持迭代的容器类对象,这里的容器可以是列表、元组等这些Python提供的基础容器,也可以是自定义的容器类对象,只要该容器支持迭代即可。如果要自定义实现一个迭代器,则类中必须实现如下 2 个方法:__next__(self):返回容器的下一个元素。

2022-05-29 13:44:46 703

原创 python 编码规范-代码的整体布局

代码的整体布局主要囊括了代码在整体结构上应该注意的事项缩进 空格/制表符Python 在语法上使用缩进来确定代码块的开始和结束 对于每一级缩进,应为 4 个空格,并且不要混用空格与制表符 缩进本身是一种语法上的限制,是强制性的 有的IDE会强制用tab进行缩进,并且在编译的时候转换为4个空格悬挂缩进括号内第一行不应放置元素 同级别的代码处于相同的缩进 当 if 等控制语句的条件部分需要换行时,可以使用括号将条件部分包裹起来,在括号内进行换行。 当多行结构在结束时,其右.

2022-05-27 16:44:33 351

原创 python 编码规范- 注释编写

注释对于代码的阅读、扩展以及维护都非常重要。在 Python 中常用的注释方式有三种,分别为块注释( Block Comments )、行内注释( Inline Comments )、文档字符串( Documentation Strings )。首先我们需要了解的是在注释编写过程中的一些通用原则,这些原则不管针对哪种注释方式,都是值得参考的 应注重注释的可读性和完整性,这样有助于代码后续的扩展和维护; 应注重注释的实时性,即代码在修改或扩展过程中,及时更新对应的注释; 应优先使用英

2022-05-27 16:42:17 1779

原创 python 编码规范-命名规范

常见的命名规则匈牙利命名法: 以一至多个小写字母表示其属性、类型,后接首字母大写的一至多个单词表示其作用描述。 比如m_bCanRun,其中m_表示其为成员变量,b表示其类型为布尔值,CanRun表示其代表是否可以检查的含义。 驼峰命名法: 以一至多个逻辑单元构成,每个逻辑单元可称为一个识别字, 首个识别字首字母小写,其余识别字首字母大写,比如canRun, 由于首字母小写,这种形式也被称为小驼峰命名法。 帕斯卡命名法:和驼峰命名法类似,区别为首字母大写,如C...

2022-05-27 16:40:13 949

原创 python 编码规范 Style Guide for Python Code

目录python 编码规范简述编码规范的好处:PEP(Python Enhancement Proposals)简介规范基本内容代码的整体布局缩进与空格 / 制表符隐式换行悬挂缩进行最大长度运算符与换行、代码之间的空行导入的组织代码的编码声明dunder 方法的位置引号、空格与逗号单引号还是双引号?表达式和语句中的空格行尾部的逗号复合语句注释编写块注释( Block Comments )#行内注释( Inline Com..

2022-05-26 17:06:14 694

原创 Python super() 函数

描述super() 函数是用于调用父类(超类)的一个方法。super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。语法以下是 super() 方法的语法:super(type[, object-or-type])参数type -- 类。 object-or-type -- 类,一般是 self

2022-05-26 11:15:47 122

原创 python xlrd主要功能

This module is part of the xlrd package, which is released under aBSD-style licence. Basically, usefunctionxlrd.open_workbook to get meta data from a xls file path. Available data types are:0. empty, 1. string (text), 2. number, 3. date, 4. boolean, 5

2022-05-20 12:48:25 694

原创 python 读写数据文件的6种常用方式

本文主要介绍python读写数据文件的6种常用方式。1. python内置方法with open(r'test.xlsx') as f: a = f.read()一般,在应用上述上下文管理器后,可以用如下三种方式进行内置方法的读写操作。read() : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长 readline() :每次读取一行内容。内存不够时使用,一般不太用 readlines() :一次性读取整个文件内容,并按行返回到list,方

2022-05-20 10:40:36 7960

原创 python 将多个df写入xlsx文件的ExcelWriter

关于pandas.ExcelWriter用法的介绍,本文参考了python内置文档 Help on class ExcelWriter in module pandas.io.excel._base。

2022-05-19 18:12:08 4307

原创 python pandas中ExcelFile与read_excel的区别

ExcelFile与read_excel是pandas中处理excel文件的两个方法。本文将从实例进行说明,来介绍这两种方法的区别。事实上,尽管预料到pandas同时支持这两种方法,但整体上我还不知道pandas对这两个方法的定位是什么。而通过整理这两个方法,可以在工作之余探究pandas对这两个方法的定位。本文主要参考了ExcelFile与read_excel的文档进行整理。首先给出两个方法的简单使用#ExcelFile方法的使用path1 ="test.xlsx"xlFile = pd.E

2022-05-19 17:31:36 6407

原创 Python 3函数注解:为函数提供类型提示信息

函数注解是Python 3最独特的功能之一,关于它的介绍,官方文档是这么说的,“函数注解是关于用户自定义函数使用类型的完全可选的元信息”。也就是说,官方将函数注解的用途归结为:为函数中的形参和返回值提供类型提示信息。下面是对 Python 官方文档中的示例稍作修改后的程序,可以很好的展示如何定义并获取函数注解:def f(ham:str,egg:str='eggs')->str: passprint(f.__annotations__)输出结果为:{'ham': <cla

2022-05-19 15:41:24 1604

原创 python中的->和@

->->常常出现在python函数定义的函数名后面, 为函数添加元数据,描述函数的返回类型, 从而方便开发人员使用. 如:def add(x, y) -> int: return x+y这里面, 元数据表明了函数的返回值为int类型. 这样做的好处是, 使用预期的类型来注释参数, 然后在函数返回值验证时检验参数的类型或者将其强制转换成预期的类型.@@是一个property, 这是另一个关于python面向对象编程的问题. 以如下代码为例, @ property.

2022-05-19 15:25:44 427

原创 Python A value is trying to be set on a copy of a slice from a DataFrame

这个错误是在对pandas模块不熟悉的时候会经常遇见的. 我现在的处理方法就是有赋值行为之前, 先避免使用切片方法. 不过本文作为一种整理, 有必要对这种报错的底层逻辑进行明晰.以下将用一个例子详细说明.初始化一个用于举例的dfdf = pd.DataFrame(np.arange(12).reshape(2,6).T, columns=['a','b'])df a b0 0 61 1 72 2 83 3 94 4 105 5 11df1.

2022-05-17 18:58:12 9071

原创 Python函数定义里的冒号: 给函数参数增加元信息

给函数参数增加元信息问题你写好了一个函数,然后想为这个函数的参数增加一些额外的信息,这样的话其他使用者就能清楚的知道这个函数应该怎么使用。解决方案使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使用这个函数。 例如,下面有一个被注解了的函数:def add(x:int, y:int) -> int: return x + ypython解释器不会对这些注解添加任何的语义。它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何差距。 然而,对于那些阅读源

2022-05-17 15:30:46 120

原创 Python中的hashable(散列)

python文档中的解释:hashableAn object is hashable if it has a hash value which never changes during its lifetime (it needs a _hash_()method), and can be compared to other objects (it needs an __eq__()method). Hashable objects which compare equal must have t..

2022-05-17 15:28:55 280

原创 Python 中的 sequence 类型

在查看Python 内置的帮助文档的时候, 我发现其对函数的定义def是如下形式的.duplicated(subset: 'Hashable | Sequence[Hashable] | None' = None, keep: "Literal['first'] | Literal['last'] | Literal[False]" = 'first') -> 'Series' method of pandas.core.frame.DataFrame instance可见函数对其中的

2022-05-17 14:06:09 1602

原创 多个df文件之间含有重叠项的处理

在进行数据分析时, 为获取某个完整的panel数据往往需要将多个文件进行整合. 而当这些文件之间存在重叠的时候, 单纯的拼接难以得到好的结果. 本文将以pandas重复值处理的若干函数着手, 分析最好的文件重复值处理方法.首先, pandas中处理重复值主要使用的是两个函数:duplicated():判断是否有重复值 drop_duplicates() :删除重复值对这两个函数的解释Help on method duplicated in module pandas.core.frame:

2022-05-15 15:00:36 1636 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除