Pandas简介及常用函数

Pandas包含两大数据结构Series , DataFrame

1  Series对象

1.1  定义Series对象

Series对象用来表示一位数据结构,含有两列数据Index(索引)、value(数据)

调用Series()构造函数,要以数组的方式传入,即

>>> pd.Series([12,6,9], index = [‘a’,’b’,’c’])

也可以用numpy 或者现有的Series对象动态定义新Series对象

可以用事先定义好的字典来创建Series对象,索引列默认用字典的键来填充,也可重新指定索引,如果索引列没有数据,则填充为NaN

1.2  数学运算

(+、-、*、/)和其他数学函数也适用于Series,但是Numpy库的数学函数必须指明出处,np.log(s)#s为Series对象

Series1 + Series2,标签相同的元素相加,不同标签的值被填充为0。要是想保留标签不同的数值,用Series1.add(Series2)

1.3  组成元素

Series.unique(  ):统计Series中去重后的元素,但是顺序比较随意

Series.value_counts( ):统计Series中唯一元素及其出现的次数

Series.isin( ):判断给定的元素是否在Series中,返回布尔值

Series.isnull( )和Series.notnull( ):识别有无NaN元素(适用于Series ,和DataFrame)

2  DataFrame对象

DataFrame的数据结构与Excel极为相似

2.1  定义DataFrame对象

创建一个dict对象传递给DataFrame

>>> dict = { ‘number’ : [ ‘one’, ‘ two’ ] , ‘color’ :[ ‘blue’, ‘black’ ]}
>>> frame = pd.DataFrame( dict )

用嵌套字典生成 # 对应索引没有元素时,pandas会用NaN填充

>>> nestdict = { ‘blue’:{2012:22 , 2013:26} , 
‘black’ : {2012:26, 2013:29 , 2014:46} ,
‘green’ : {2012:16, 2013:25 } } 
>>> frame2 = pd.DataFrame( nestdict )

或者直接构造,即

>>> pd.DataFrame(data, #数字矩阵
Index, #标签
columns #列名)

2.2  元素选取和赋值

DataFrame.columns:显示DataFrame对象所有列的名字

DataFrame.index:获取索引列表

DataFrame.values:获取所有元素

DataFrame.ix [ number ] :获取number+1行的所有元素

DataFrame.ix [ list [ number1 , number2 ] ]:获取number1+1、number2+1行的所有元素

DataFrame.index.name = ‘id’ : 索引组列名为id

DataFrame.columns.name = ‘item’ : 各数组列名的索引为item

DataFrame [ ‘columns_number’ ] = data :新增一列columns_number,数值为data

DataFrame.drop(labels = [col1 , col2] , axis = 1)  :删除col1和col2两列数据 #并未改变原DataFrame的数值

Del DataFrame[col1]:删除col1数据   #把原DataFrame的col1列数据删除

数值筛选:关系符号直接与DataFrame做比较,返回布尔值(DataFrame表中元素全为float或int)

DataFrame.T :内容转置

2.3  数学运算

DataFrame1 + DataFrame2,标签相同的元素相加,不同标签的值被填充为0。

Pandas允许DataFrame和Series两种不同数据结构相加,两者运算时,DataFrame对象各元素运算操作Series对象索引与之相同的元素,若索引列只存在其中一个数据结构中,则运算结果会为2该索引项生成一列,只不过该列所有元素为NaN

3  index对象

index对象不可更改,但是可以对元素的索引列进行更换(重新定义)

idmin( )和idmax():返回索引列的最小、最大值

index.is_unique :判断该数据结构的标签列是否存在重复值,返回布尔值

reindex( list , index = [] ):重新编制索引 #在数据量较多的时候,存在操作麻烦

插值索引:redindex( list , method = ‘ffill’ #’ffill’或’pad 前向填充

                        method = ’bfill’或’backfill 后向填充)

  注意:重新编制索引后,如果数据类型原本是int , 因为index发生了变化,启用fill_value参数,此参数为float类型,故数据类型会变成float

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值