数据分析之pandas入门
一、数据结构
1. Series
1.1 序列构造和调用
Series是一种类似于一维数组的对象,它由一组数据和索引共同组成,可以通过索引的方式来选取Series中的单个或一组值,常用的构造函数为obj2=Series([4,7,-3,3], index=['d','b','a','c'])
对于index而言,默认参数可以不写,可以缺省,若缺省则使用默认的索引从0:N-1
字典<——>Series:可以通过Series函数直接将字典转换成Series(Series(dict))
1.2 自动对齐
Series在计算的过程中能够自动对齐不同索引的数据进行计算。
1.3 属性
index,value,name
通过obj2.index和obj2.value的属性方法进行调用和赋值进行修改,同时可以通过具体的索引值获取数据obj2['a']
对于name属性而言,Series本身以及其索引都具备name属性。obj2.name= 和 obj2.index.name= 进行赋值和调用。
2.DataFrame
2.1 数据构建调用
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以有不同的数值类型,同时具备行索引和列索引。
最常用的构建方法是传入等长数列或者Numpy数组组成的字典:
DataFrame(data,columns,index)通过columns来交换列的顺序,通过index来设置行索引
可以通过frame.state 或者frame['pop']来获取列,列获取类型为Series,同时name存在。
创建新列:为不存在的列赋值,就能创建新的列
删除列:del frame['year']
2.2 赋值及操作
可以多整列操作赋值相同值,如借助frame['pop'] = 1.5。或者借助Series进行赋值操作,这样的赋值将准确匹配DataFrame的索引。
创建新列:为不存在的列赋值,就能创建新的列
删除列:del frame['year']
1.3 属性
index,columns,value,name
通过obj2.index和obj2.value的属性方法进行调用和赋值进行修改,同时可以通过具体的索引值获取数据obj2['a']
对于name属性而言,Series本身以及其索引都具备name属性。frame.columns.name= 和 frame.index.name= 进行赋值和调用。
对于value这一方法而言,能去除行索引和列索引得到一个二维数组。
二、基本功能
1.1 重新索引(重新排序)
对于Series而言,会根据新的索引对原先的顺序安好新的索引进行排序。obj.reindex(['a','b']).
对于reindex可能需要特殊的插值处理,因此利用method可以达到该目的。obj3 = Series([range(6), method='ffill']). 列出了可用的method选项:ffill或pad前向填充值,bfill或backfill后向填充。
1.1 丢弃指定轴上的项
1.drop的操作后原数据并不发生变化。axis =1表示列索引。行索引为axis=1可省略。
索引、选取和过滤
利用标签的切片运算与普通的Python切片运算不同,其末端是包含的。
上述实现是通过切片或者布尔数组进行取行。
data.ix['Colorado',['two','three']]
通过ix进行调用,最后获得一个Series。