Python玩转数据分析学习笔记-04字典相关

1.字典

一种映射类型,key-value对

创建字典:

-直接

aInfo={‘A’:1000,‘B’:2000, ‘C’:3000}

-利用dict函数

bInfo=dict([[‘A’,3000],[‘B’,2000],[‘C’,3000]])

cInfo=dict([(‘A’,3000),(‘B’,2000),(‘C’,3000)])

dInfo=dict(A=1000,B=2000,C=3000)

三种形式

 

创建字典时设置默认值

aDict={}.fromkeys((‘A’,’B’,’C’),3000)

 

sorted()对字典进行排序,返回的是将key值排序后的list

zip()函数可以将两个list连接成一个一一对应的字典

 

2.字典的基本操作

按照键值查找:    aInfo[‘A’]

更新:                      aInfo[‘A’]=5000

添加:                      aInfo[‘D’]=4000

成员判断:             ‘F’ in aInfo

删除字典:             del aInfo

 

字典的格式化字符串:

         %(key)格式说明符 % 字典对象名

可以使用输出模板

         template=’’’…’’’

 

字典的内建函数:

dict.keys()

dict.values()

dict.get(key)             不存在的时候返回None

dict.update(dict2)   会对照dict2中的值更新dict中的值,dict中不存在的键值对会进行添加

dict.clear()                会将该字典以及指向该字典的字典都清空,而dict={}只会清空dict,不会对其他字典产生影响

items()

iter()

setdefault()

fromkeys()

has_keys()

pop()

 

字典作为函数的形式参数:

deffun(args1,*argst,**argsd):

其中**argsd指的是字典

 

 

3.集合

可变集合set

不可变集合frozenset

 

不重复

a=set(b),可以除去b中的重复元素

 

集合比较:

 

集合关系运算:

 

集合的内建函数

面向所有集合:

s.issubset(t)                      s是不是t的子集

issuperset(t)

union(t)

intersection(t)

difference(t)

symmetric_difference(t)

copy()

面向可变集合:

update(t)

intersection_update(t)

difference_update(t)

symmetric_difference_update(t)

add(obj)

remove(obj)

discard(obj)

pop()

clear()

 

 

4.扩展库SciPy

SciPy中的数据结构:

F  ndarray(N维数组)

F  Series(变长字典)

F  DataFrame(数据框)

 

NumPy

特征:

Ÿ   强大的ndarray对象和ufunc函数

Ÿ   精巧的函数

Ÿ   比较适合线性代数和随机处理等科学计算

Ÿ   有效的通用多维数据,可定义任意数据类型

Ÿ   无缝对接数据库

 

SciPy核心库

特征:

Ÿ   Python中科学计算程序的核心包

Ÿ   有效计算numpy矩阵,让Numpy和SciPy协同工作

Ÿ   致力于科学计算中常见问题的各个工具箱,其不同子模块有不同的应用,如插值、积分、优化和图像处理等。

 

Matplotlib

特征:

Ÿ   基于NumPy

Ÿ   二维绘图库,简单快速生成曲线图、直方图和散点图等形式的图

Ÿ   常用的pyplot是一个简单提供类似MATLAB接口的模块

pandas

特征:

Ÿ   基于SciPy和NumPy

Ÿ   高效的Series和DataFrame数据结构

Ÿ   强大的可扩展数据操作与分析的python库

Ÿ   高效处理大数据集的切片等功能

Ÿ   提供优化库功能读写多种文件格式,如CSV、HDF5

 

 

5.ndarray

ndarray-N维数组

²  NumPy中基本的数据结构

²  别名为array

²  利于节省内存和提高CPU计算时间

²  有丰富的函数

 

ndarray的创建和输出:

ndarray创建函数:

  arrange(起始,末尾(不包括该值),增量)

  array(数组)

  copy

  empty

  empty_like

  eye

  fromfile

  fromfunction(func,(m,n))                  0,0开始到m-1,n-1的数组并且进行func运算

  identity

  linspace

  logspace

  mgrid

  ogrid

  ones

  ones_like

  r

  zeros

  zeros_like

两个ndarray对象做计算时是对应元素做计算。

 

ufunc函数:

         是一种能对数组的每个元素进行操作的函数。许多内置ufunc函数实在c语言级别实现的,速度非常快。

通过help(ufunc)查看ufunc函数

import numpy as np

np.ufunc函数 #比内置函数要快

 

 

 

6.变长字典Series

基本特征:

Ÿ   类似一维数组的对象

Ÿ   由数据和索引组成

 

from pandas importSeries

aSer=pd.Series([1,2,0,’a’])                #自带索引

bSer=pd.Series([‘apple’,’peach’,’lemon’],index=[1,2,3])         #指定索引

bSer.index                                           #查看索引

bSer.values                                         #查看数值

aSer[index]                                         #通过索引访问数值

 

Series的数据对齐:

aSer=pd.Series(data,index=sindex)

即按照sindex在data中寻找,如果不存在则索引对应的值为NaN(Not a Number)

重要功能:可以在算术运算中自动对齐不同索引的数据,即两个Series相加会自动对齐,非共有的会返回NaN

 

pd.isnull(aSer)          判断字典每个索引对应的值是否为空

np.exp(aSer)            计算自然对数

 

Series的name属性:

重要功能:

Ÿ   Series对象本身及其索引均有一个name属性

Ÿ   Series的name属性与其他重要功能关系密切

可以对name进行赋值,可以使处理问题更高效

 

 

7.DataFrame

基本特征:

²  一个表格型的数据结构

²  含有一组有序的列(类似于index)

²  大致可以看成是共享同一个index的Series的集合

创建:

data={‘name’:[‘a’,’b’,’c’],’pay’:[4000,5000,6000]}

pd.DataFrame(data)

自动创建index,name和pay作为值的列名,也可以与Series一样,指定index

 

基本操作:

l  取DataFrame对象的列和行可以获得Series

frame[‘name’]

frame.pay

这两种方法等价

frame.ix[index_a]            可以获得索引为index_a的对应的值,以 列名 值的形式。

l  修改和删除

frame[‘name’]=’admin’   可以将整列改成admin

del frame[‘pay’]               将整列删除

l  DataFrame的name属性

类似于Series

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值