pandas学习笔记1

一、pandas数据结构

1、Series

Series有两个属性,values和index,values表示Series对象中的数据,是只读的属性,不可通过属性赋值。index表示Series中的索引,可以通过直接赋值的方式改变,但赋值的列表长度应该与index长度相同。改变index的方式还可以通过reindex方法,调用该方法,返回一个新的Series对象,原对象不做修改。新对象中,如果索引在原对象不存在,则值为NAN,否则值为原对象中的对应值

1.1、Series大约可以通过以下三种方式创建:

i、s = Series([1,2,3,4])

ii、s = Series([1,2,3,4],index=['a','b','c','d'])

iii、s = Series({'a':1,'b':2,'c':3,'d':4})

1.2、Series还有计算中自动对齐操作,判断空值,以及数值计算中与numpy类似的用法等常见功能.

2、DataFrame

DataFrame中有index与columns两个属性,分别表示行与列的名字。index的操作方法Series类似。


pandas学习笔记1_第1张图片

创建有如上构建方式。

3、index对象

index是一个不可变对象


pandas学习笔记1_第2张图片
index方法


二、基本功能

1、重新索引

reindex函数,可以重新索引index与columns,其行为与上述所说一致。对于重新索引后出现的NaN值,可以通过method和fill_value等字段进行填充。

2、丢弃指定轴的项

drop函数,可以向其中传递单值或者列表,默认情况下其选择的是行,可以设定axis=1指定列.传递进入不存在的值会报异常.

3、索引与选取

3.1、对于series

s = Series([1,2,3,4],index=list("abcd"))

i、s['a']、s[[‘a’,'b','c']]、s['a':'c']、s[1:3]

s['a':'c']包含端点,s[1:3]不包含端点

当Series是数字索引时,s[1:3]进行的是按照索引值选取.

ii、loc、iloc、at、iat、ix等函数可用

3.2、对于DataFrame

df = DataFrame(np.arange(12).reshape((3,4)),columns=list("abcd"))

i、df['a'],d[[‘a’,'b','c']]选取列

当传入标签切片时或者布尔数组时,选取行

ii、loc、iloc、at、iat、ix方法

4、算数运算与对齐操作

当Series之间或者DataFrame之间进行算数运算的时候,index与columns与形成一个并集,它们是新的Series或者DataFrame的属性,自动的数据对齐操作在不重叠的索引上引入NaN。对于缺失值的处理可以利用add、sub、mul、div方法并且设置fill_value。Series与DataFrame进行计算,计算过程类似numpy中传播的概念。默认情况下,二者间列之间进行匹配,对于没有匹配上的计算结果为NaN,要改变成匹配行,可将axis设置为0,Series与DataFrame之间的计算无法设置fill-value填充值.

5、函数应用

5.1、numpy的元素级函数可以应用到pandas对象

5.2、可以用apply方法传递函数,来对行或者列来进行操作,通过axis来控制,返回一个值或者一个Series。

5.3、可以对applymap传入函数进行元素级操作。

6、排序与排名

6.1、sort_index,对index进行排序,对于DataFrame,利用axis来指定对行操作还是对列操作。

6.2、希望按值排序时,对于Series可以用order方法,对于DataFrame可以用sort_index()并设置by。

6.3、rank方法返回排名,对于数值相同的项,它的排名由method方法设置。对于DataFrame,可以由axis来指定行还是列。

三、汇总和计算统计描述

四、处理缺失数据

有四个主要的相关方法:dropna、fillna、isnull、notnull

五、层次化索引

你可能感兴趣的:(pandas学习笔记1)