摘要:random() 方法返回随机生成的一个实数。 1. random.random() 0到1的随机浮点数。 print(random.random()) # 0.7056803343481585 2. random.uniform(a,b) 用于生成一个指定范围内的随机符点数,两个参数其中一个是上限 阅读全文
posted @ 2020-01-03 22:43 PythonGirl 阅读 (28) 评论 (0) 编辑
摘要:import datetime # 能调整的字段:weeks days hours minutes seconds print(datetime.datetime.now() + datetime.timedelta(weeks=3)) # 三周后 print(datetime.datetime.n 阅读全文
posted @ 2020-01-03 20:21 PythonGirl 阅读 (21) 评论 (0) 编辑
摘要:和时间有关系的我们就要用到时间模块。 表示时间的三种方式: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。1970年1月1 是英国时间(2)格式化的时间字 阅读全文
posted @ 2020-01-03 06:52 PythonGirl 阅读 (24) 评论 (0) 编辑
摘要:正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中提取出符合某个条件的子串等。 一、 re模块的基本使用 字符 元字符 匹配内容 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划 阅读全文
posted @ 2020-01-02 20:32 PythonGirl 阅读 (35) 评论 (0) 编辑
摘要:1. 什么是反射 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。 2. python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射) 四个内置函数: hasattr(obj, attr): 这个方法用于检查obj是否有 阅读全文
posted @ 2019-12-31 22:14 PythonGirl 阅读 (65) 评论 (0) 编辑
摘要:软件重用的重要方式,除了继承之外还有另外一种方式,即:组合 一、对象之间的交互 方法可以传参,参数可以是对象。 class Person: role = 'person' def __init__(self, name, sex, hp, ad): self.name = name self.sex 阅读全文
posted @ 2019-12-31 21:02 PythonGirl 阅读 (63) 评论 (0) 编辑
摘要:一、初识继承 面向对象的三大特性:继承,多态,封装。这3大特性是所有面向对象语言特点 父类:又叫超类、基类 子类:又叫派生类 class Parent:pass class Son(Person):pass 继承一般有2种:单继承和多继承 class ParentClass1: #定义父类 pass 阅读全文
posted @ 2019-12-31 17:40 PythonGirl 阅读 (51) 评论 (0) 编辑
摘要:一、多态 多态指的是一类事物有多种形态 python:a 可以接受任意数据类型,对象 默认支持多态。 def func(a): pass 动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abst 阅读全文
posted @ 2019-12-31 13:18 PythonGirl 阅读 (54) 评论 (0) 编辑
摘要:封装 : 广义上的 :把属性函数都放到类里,只有这个类的对象才能使用类里的方法 狭义上的 :定义私有成员(私有变量和私有方法) 封装原则: 将不需要对外提供的内容都隐藏起来; 隐藏对象的属性和实现细节,提供公共方法对其访问。 在python中用双下划线开头的方式将属性隐藏起来。所谓私有,就是不能在类 阅读全文
posted @ 2019-12-21 22:46 PythonGirl 阅读 (69) 评论 (0) 编辑
摘要:property property是一个装饰器函数,可以将一个方法伪装成属性,调用的时候可以不用加()。@property被装饰的方法,是不能传参数的,因为它伪装成属性了。 装饰器的使用:在要装饰的函数、方法、类上面一行加上 @装饰器名字 装饰器的分类: 装饰函数 装饰方法:property 装饰类 阅读全文
posted @ 2019-12-21 19:58 PythonGirl 阅读 (69) 评论 (0) 编辑
摘要:定义:双下方法是特殊方法,他是解释器提供的。由双下划线+方法名+双下划线 。它具有特殊意义的方法,双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码。 调用:不同的双下方法有不同的触发方式,就好比盗墓时触发的机关一样,不知不觉就触 阅读全文
posted @ 2019-12-21 18:09 PythonGirl 阅读 (61) 评论 (0) 编辑
摘要:鸭子类型 如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’。python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象,也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。 例1:利用标准库中定义的各种‘与文件类 阅读全文
posted @ 2019-12-21 09:23 PythonGirl 阅读 (61) 评论 (0) 编辑
摘要:isinstance(a,b):判断a是否是b类(或者b类的基类)实例化的对象 class A: pass class B(A): pass obj = B() print(isinstance(obj,B)) # True print(isinstance(obj,A)) # True issub 阅读全文
posted @ 2019-12-19 09:35 PythonGirl 阅读 (53) 评论 (0) 编辑
摘要:一、抽象类(规范的编程模式) 什么是抽象类 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化。抽象类的本质还是类,指的是一组类的相似性,而接口只强调函数属性的相似性。 为什么要有抽象类 如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数 阅读全文
posted @ 2019-11-16 10:08 PythonGirl 阅读 (128) 评论 (0) 编辑
摘要:静态方法是类中的函数,不需要实例。静态方法主要是用来存放逻辑性的代码,逻辑上属于类,但是和类本身没有关系,也就是说在静态方法中,不会涉及到类中的属性和方法的操作。可以理解为,静态方法是个独立的、单纯的函数,它仅仅托管于某个类的名称空间中,便于使用和维护。 譬如,我想定义一个关于时间操作的类,其中有一 阅读全文
posted @ 2019-11-16 01:59 PythonGirl 阅读 (125) 评论 (0) 编辑
摘要:类方法:必须通过类的调用,而且此方法的意义:就是对类里面的变量或者方法进行修改添加。 例一个商店,店庆全场八折,代码怎么写呢? class Goods: __discount = 0.8 # 折扣 def __init__(self,name,origin_price): self.name = n 阅读全文
posted @ 2019-11-16 01:19 PythonGirl 阅读 (113) 评论 (0) 编辑
摘要:一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分。 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel = 'xxxxxxx' # 私有静态变量(私有静态字段) def __init__(self,nam 阅读全文
posted @ 2019-11-15 23:44 PythonGirl 阅读 (119) 评论 (0) 编辑
摘要:一. 类的空间问题 1何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex # 类外面可以 obj = A('barry') obj.age = 18 prin 阅读全文
posted @ 2019-11-15 15:42 PythonGirl 阅读 (317) 评论 (0) 编辑
摘要:一、面向对象编程 类 : 具有相同属性和技能的一类事物 对象: 就是对一个类的具体的描述 实例化:类——>对象的过程 使用面向对象的好处: 使得代码之间的角色关系更加明确 增强了代码的可扩展性 规范了对象的属性和技能 结构上, 面向对象可以分为两部分:属性和方法 属性又叫静态属性、静态字段、静态变量 阅读全文
posted @ 2019-11-08 19:11 PythonGirl 阅读 (102) 评论 (0) 编辑
摘要:由于许多潜在的Pandas用户对SQL有一定的了解,因此本文章旨在提供一些如何使用Pandas执行各种SQL操作的示例。 文件:tips.csv - total_bill,tip,sex,smoker,day,time,size 0,16.99,1.01,Female,No,Sun,Dinner,2 阅读全文
posted @ 2019-11-06 21:14 PythonGirl 阅读 (82) 评论 (0) 编辑
摘要:警告和疑难意味着一个看不见的问题。在使用Pandas过程中,需要特别注意的地方。 与Pandas一起使用If/Truth语句 当尝试将某些东西转换成布尔值时,Pandas遵循了一个错误的惯例。 这种情况发生在使用布尔运算的。 目前还不清楚结果是什么。 如果它是真的,因为它不是zerolength? 阅读全文
posted @ 2019-11-06 20:32 PythonGirl 阅读 (50) 评论 (0) 编辑
摘要:当任何匹配特定值的数据(NaN/缺失值,尽管可以选择任何值)被省略时,稀疏对象被“压缩”。 一个特殊的SparseIndex对象跟踪数据被“稀疏”的地方。 这将在一个例子中更有意义。 所有的标准Pandas数据结构都应用了to_sparse方法 - import pandas as pd impor 阅读全文
posted @ 2019-11-06 19:54 PythonGirl 阅读 (42) 评论 (0) 编辑
摘要:Pandas I/O API是一套像pd.read_csv()一样返回Pandas对象的顶级读取器函数。 读取文本文件(或平面文件)的两个主要功能是read_csv()和read_table()。它们都使用相同的解析代码来智能地将表格数据转换为DataFrame对象 - pandas.read_cs 阅读全文
posted @ 2019-11-06 19:19 PythonGirl 阅读 (50) 评论 (0) 编辑
摘要:基本绘图:绘图 Series和DataFrame上的这个功能只是使用matplotlib库的plot()方法的简单包装实现。 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10,4),index=pd 阅读全文
posted @ 2019-11-05 22:19 PythonGirl 阅读 (175) 评论 (0) 编辑
摘要:通常实时的数据包括重复的文本列。例如:性别,国家和代码等特征总是重复的。这些是分类数据的例子。 分类变量只能采用有限的数量,而且通常是固定的数量。除了固定长度,分类数据可能有顺序,但不能执行数字操作。 分类是Pandas数据类型。 分类数据类型在以下情况下非常有用 - 一个字符串变量,只包含几个不同 阅读全文
posted @ 2019-11-05 21:26 PythonGirl 阅读 (60) 评论 (0) 编辑
摘要:时间差(Timedelta)是时间上的差异,以不同的单位来表示。例如:日,小时,分钟,秒。它们可以是正值,也可以是负值。可以使用各种参数创建Timedelta对象,如下所示 - 字符串 通过传递字符串,可以创建一个timedelta对象。参考以下示例代码 - import pandas as pd 阅读全文
posted @ 2019-11-05 20:45 PythonGirl 阅读 (86) 评论 (0) 编辑
摘要:日期功能扩展了时间序列,在财务数据分析中起主要作用。在处理日期数据的同时,我们经常会遇到以下情况 - 生成日期序列 将日期序列转换为不同的频率 创建一个日期范围 通过指定周期和频率,使用date.range()函数就可以创建日期序列。 默认情况下,范围的频率是天。参考以下示例代码 - import 阅读全文
posted @ 2019-11-05 19:49 PythonGirl 阅读 (42) 评论 (0) 编辑
摘要:Pandas提供了各种工具(功能),可以轻松地将Series,DataFrame和Panel对象组合在一起。 pd.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False) objs - 这是Series,DataFrame 阅读全文
posted @ 2019-11-05 19:14 PythonGirl 阅读 (43) 评论 (0) 编辑
摘要:Pandas具有功能全面的高性能内存中连接操作,与SQL等关系数据库非常相似。Pandas提供了一个单独的merge()函数,作为DataFrame对象之间所有标准数据库连接操作的入口 - pd.merge(left, right, how='inner', on=None, left_on=Non 阅读全文
posted @ 2019-11-04 20:10 PythonGirl 阅读 (40) 评论 (0) 编辑
摘要:任何分组(groupby)操作都涉及原始对象的以下操作之一: 分割对象 应用一个函数 结合的结果 在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数。在应用函数中,可以执行以下操作: 聚合 - 计算汇总统计 转换 - 执行一些特定于组的操作 过滤 - 在某些情况下丢弃数据 下面来看看创 阅读全文
posted @ 2019-11-04 19:01 PythonGirl 阅读 (129) 评论 (0) 编辑
摘要:数据丢失(缺失)在现实生活中总是一个问题。 机器学习和数据挖掘等领域由于数据缺失导致的数据质量差,在模型预测的准确性上面临着严重的问题。 在这些领域,缺失值处理是使模型更加准确和有效的重点。 使用重构索引(reindexing),创建了一个缺少值的DataFrame。 在输出中,NaN表示不是数字的 阅读全文
posted @ 2019-11-04 07:50 PythonGirl 阅读 (191) 评论 (0) 编辑
摘要:当有了滚动,扩展和ewm对象创建了以后,就有几种方法可以对数据执行聚合。 DataFrame应用聚合 可以通过向整个DataFrame传递一个函数来进行聚合,或者通过标准的获取项目方法来选择一个列。 在整个数据框上应用聚合 import pandas as pd import numpy as np 阅读全文
posted @ 2019-11-02 20:36 PythonGirl 阅读 (60) 评论 (0) 编辑
摘要:为了处理数字数据,Pandas提供了几个变体,如滚动,展开和指数移动窗口统计的权重。 其中包括总和,均值,中位数,方差,协方差,相关性等。本章讨论的是在DataFrame对象上应用这些方法。 .rolling()函数 这个函数可以应用于一系列数据。指定window=n参数,并应用适当的统计函数。 i 阅读全文
posted @ 2019-11-02 19:07 PythonGirl 阅读 (117) 评论 (0) 编辑
摘要:统计方法有助于理解和分析数据的行为。可以将这些统计函数应用到Pandas的对象上。 pct_change()函数 系列,DatFrames和Panel都有pct_change()函数。此函数将每个元素与其前一个元素进行比较,并计算变化百分比。 import pandas as pd import n 阅读全文
posted @ 2019-11-02 17:37 PythonGirl 阅读 (66) 评论 (0) 编辑
摘要:Pandas现在支持三种类型的多轴索引; 编号索引描述 1 .loc() 基于标签 2 .iloc() 基于整数 3 .ix() 基于标签和整数 .loc() Pandas提供了各种方法来完成基于标签的索引。 切片时,也包括起始边界。整数是有效的标签,但它们是指标签而不是位置。 .loc()具有多种 阅读全文
posted @ 2019-11-02 15:53 PythonGirl 阅读 (67) 评论 (0) 编辑
摘要:Pandas提供API来自定义其行为的某些方面,大多使用来显示。 API由五个相关函数组成。它们分别是: get_option() set_option() reset_option() describe_option() option_context() 常用参数,请参考下表: get_optio 阅读全文
posted @ 2019-11-02 13:01 PythonGirl 阅读 (79) 评论 (0) 编辑
摘要:在本章中,我们将使用基本系列/索引来讨论字符串操作。在随后的章节中,将学习如何将这些字符串函数应用于数据帧(DataFrame)。 Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作。 最重要的是,这些函数忽略(或排除)丢失/NaN值。 几乎这些方法都使用Python字符串函数(请参阅 阅读全文
posted @ 2019-11-02 11:19 PythonGirl 阅读 (62) 评论 (0) 编辑
摘要:Pandas有两种排序方式,它们分别是 - 按标签 按实际值 输出结果: 在df数据值中,标签和值未排序。下面来看看如何按标签来排序。 按标签排序 使用sort_index()方法,通过传递axis参数和排序顺序,可以对DataFrame进行排序。 默认情况下,按照升序对行标签进行排序。 输出结果: 阅读全文
posted @ 2019-11-01 21:27 PythonGirl 阅读 (130) 评论 (0) 编辑
摘要:Pandas对象之间的基本迭代的行为取决于类型。当迭代一个系列时,它被视为数组式,基本迭代产生这些值。其他数据结构,如:DataFrame和Panel,遵循类似惯例,迭代对象的键。 简而言之,基本迭代(对于i在对象中)产生 - Series - 值 DataFrame - 列标签 Pannel - 阅读全文
posted @ 2019-11-01 20:08 PythonGirl 阅读 (42) 评论 (0) 编辑
摘要:重新索引会更改DataFrame的行标签和列标签。 可以通过索引来实现多个操作: 重新排序现有数据以匹配一组新的标签。 在没有标签数据的标签位置插入缺失值(NA)标记。 输出结果: 重建索引与其他对象对齐 有时可能希望采取一个对象和重新索引,其轴被标记为与另一个对象相同。 考虑下面的例子来理解这一点 阅读全文
posted @ 2019-10-31 22:44 PythonGirl 阅读 (75) 评论 (0) 编辑