利用python进行数据分析-书籍笔记(1)

目录

一、python基础

1、tab补全

2、内省

3、分号

4、变量的绑定

5、判断对象类型

6、验证对象是否迭代器

7、is与==

8、标量

9、转换符

10、三元表达式

二、numpy

​编辑1、生成ndarray

2、数组类型

3、数组类型的转化

4、数组的计算

​编辑

5、数组索引与切片

(1)切片赋值

(2)高维数组索引

(3)数组多维度切片

(4)数组索引切片混合

(5)布尔索引

(6)神奇索引

7、数组转置与换轴

8、常用函数

9、条件逻辑

10、数组统计方法

11、布尔值数组

12、数据的集合操作

13、线性代数函数

14、随机数函数

三、pandas

1、series

(1)索引

(2)缺失数据检查:

(3)name属性

​编辑

2、DataFrame

(1)构建DataFrame

(2)索引对象

3、重建索引

4、删除条目

5、使用loc和iloc选择数据

6、索引切片

 7、使用填充值的算术方法

​编辑8、广播机制

9、函数应用与映射

10、排序和排名

11、标签唯一性

12、统计描述

13、数值唯一性


一、python基础

1、tab补全

当在命令行输入表达式时,按下Tab键即可为任意变量(对象、函数等)搜索命名空间,与你目前已输入的字符进行匹配。enter

2、内省

在一个变量名的前后使用问号(?)可以显示一些关于该对象的概要信息

3、分号

4、变量的绑定

将一个变量赋值给另外一个变量,实际指向的是一个地址。

赋值也被称为绑定,这是因为我们将一个变量名绑定到了一个对象上。已被赋值的变量名有时也会被称为被绑定变量。

5、判断对象类型

你可以使用isinstance函数来检查一个对象是否是特定类型的实例。

6、验证对象是否迭代器

验证一个对象如果实现了迭代器协议,那它一定是可以迭代的。对于很多对象来说,它包含了一个__iter__魔术方法,但使用iter函数是一个更好的、独立的方法。

7、is与==

  • is:是判断两个变量是否指向相同的对象,也就是指向相同的地址。
  • ==:则是比较两者的内容是否相同的。

8、标量

  • “单值”类型有时被称为标量类型,我们在本书中称之为标量

9、转换符

你可以在字符串前面加一个前缀符号r,表明这些字符是原生字符

10、三元表达式

二、numpy

1、生成ndarray

(1)序列型对象转化数组

(2)嵌套等长列表转多维数组

(3)全0数组与全1数组构建

import numpy as np
np.ones()
np.zeros()
np.arrage()

2、数组类型

3、数组类型的转化

astype函数

4、数组的计算

5、数组索引与切片

(1)切片赋值

例如arr[5:8] = 12,数值被传递给了整个切片,整个切换的数值均=12

(2)高维数组索引

一维数组与列表索引类似

在二维数组中,每个索引值对应的元素不再是一个值,而是一个一维数组。

解析

(3)数组多维度切片

整个数组三行三列,分别对应0、1、2行与0、1、2列

  • :2代表获取第0、1行
  • 1: 代表获取1、2列

(4)数组索引切片混合

(5)布尔索引

  • 数组的比较操作(比如==)可向量化。比较names数组和字符串’Bob’会产生一个布尔值组:

  • 在索引数组时可以传入布尔值数组:

  • 布尔取反:

  • 数学操作符如&(and)和|(or):

(6)神奇索引

  • 神奇索引是NumPy中的术语,用于描述使用整数数组进行数据索引。

  • empty函数:

    选出一个符合特定顺序的子集,通过传递一个包含指明所需顺序的列表或数组来完成:

  • 传入列表,获取对应的数据行

  • 多个索引列表也可以

7、数组转置与换轴

(1)转置T属性

(2)矩阵内积

8、常用函数

语法为np.函数.(数组名...)

9、条件逻辑

numpy.where函数是三元表达式x if condition else y的向量化版本。

基础数据

(1)三元表达式

(2)where函数

  • 第一个参数为条件,第二三个参数为条件的真假赋值

10、数组统计方法

11、布尔值数组

对于布尔值数组,有两个非常有用的方法any和all。

any检查数组中是否至少有一个True,而all检查是否每个值都是True:

12、数据的集合操作

13、线性代数函数

14、随机数函数

三、pandas

1、series

  • Series是一种一维的数组型对象,它包含了一个值序列(与NumPy中的类型相似),并且包含了数据标签,称为索引(index)。
  • 默认生成的索引是从0到N-1(N是数据的长度),通过values属性和index属性分别获得Series对象的值和索引:

  • 当你把字典传递给Series构造函数时,产生的Series的索引将是排序好的字典键。

(1)索引

如果传入的索引与字典的key不一致,或者无法完全匹配,value会显示NAN

(2)缺失数据检查:

  • 使用isnull和notnull函数来检查缺失数据:

(3)name属性

  • Series对象自身和其索引都有name属性

2、DataFrame

每一列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被视为一个共享相同索引的Series的字典

(1)构建DataFrame

  • 最常用的方式是利用包含等长度列表或NumPy数组的字典来形成DataFrame:

  • DataFrame中的一列,可以按字典型标记或属性那样检索为Series:

注:frame2[colunm]对于任意列名均有效,如果不存在该列,会自动加一列。但是frame2.column只在列名是有效的Python变量名时有效。

注:dataframe的一列就是series,列名就是series的name。series的index是dataframe的行名

注:当你将列表或数组赋值给一个列时,值的长度必须和DataFrame的长度相匹配。如果你将Series赋值给一列时,Series的索引将会按照DataFrame的索引重新排列,并在空缺的地方填充缺失值:

  • 嵌套字典:如果嵌套字典被赋值给DataFrame, pandas会将字典的键作为列,将内部字典的键作为行索引:

  • 可使用类似NumPy的语法对DataFrame进行转置操作(调换行和列):

(2)索引对象

  • 索引对象是不可变的,因此用户是无法修改索引对象的

  • 查看索引:x.index   x.columns

3、重建索引

(1)Series调用reindex方法时,会将数据按照新的索引进行排列,如果某个索引值之前并不存在,则会引入缺失值:

  • method可选参数:允许我们使用诸如ffill等方法在重建索引时插值,ffill方法会将值前向填充

(2)在DataFrame中,reindex可以改变行索引、列索引,也可以同时改变二者。当仅传入一个序列时,结果中的行会重建索引:

列可以使用columns关键字重建索引:

4、删除条目

  • 在调用drop时使用标签序列会根据行标签删除值(轴0)

  • 你可以通过传递axis=1或axis='columns’来从列中删除值:

5、使用loc和iloc选择数据

特殊的索引符号loc和iloc。使用轴标签(loc)或整数标签(iloc),以NumPy风格的语法从DataFrame中选出数组的行和列的子集。

  • loc:使用索引

  • iloc:使用整数

6、索引切片

 7、使用填充值的算术方法

8、广播机制

当我们从arr中减去arr[0]时,减法在每一行都进行了操作。这就是所谓的广播机制,

9、函数应用与映射

将函数应用到一行或一列的一维数组上。DataFrame的apply方法可以实现这个功能:

  • Series对象 :apply() 方法的返回值是一个新的 Series 对象,其中每个元素都是通过将原始 Series 中的对应元素传递给自定义函数所得到的结果。
  • DataFrame 对象:apply() 方法的默认行为是按列操作,如果按行操作,设置 axis 参数为 1。

总结:

apply()将一个函数作用于DataFrame中的行或列;
applymap()则作用于DataFrame中的每一个元素;

  • np.nan函数
  • 如果两个不等长的df相加,会出现很多NAN值,可使用add方法,和一个fill_value函数:

map()是一个Series的函数,DataFrame结构中无法使用map()。map()则是将函数作用于Series中的每一个元素。

10、排序和排名

(1)按行列索引字典型排序

  • 使用sort_index方法,该方法返回一个新的、排序好的对象。默认是按照行索引进行排序,当指定axis=1按照列索引排序,默认都是升序排序,设置ascending=False降序排列

(2)Series的值排序

  • 使用sort_values方法:默认情况下,所有的缺失值都会被排序至Series的尾部:
  • 当对DataFrame排序时,你可以使用一列或多列作为排序键。为了实现这个功能,传递一个或多个列名给sort_values的可选参数by:

11、标签唯一性

索引的is_unique属性可以告诉你它的标签是否唯一

12、统计描述

13、数值唯一性

  • unique,它会给出Series中的唯一值:

  • value_counts计算Series包含的值的个数:

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值