pandas基础知识

pandas是基于Numpy构建的具有高级数据结构和操作工具的python库,让数据分析工作更方便。以下整理自《利用Python进行数据分析》第五章

pandas的主要数据结构:Series DataFrame

Series

类似于一维数组的对象,由一组数据(values)和一组数据标签(index)组成。索引可以指定,若不指定则自动创建0-N-1数字索引

和Numpy数组相比,可以通过索引的方式选取Series中的单个或一组值,Numpy的数组运算都会保留

还可以将Series看作一个定长的有序字典,可以通过python字典创建Series。(Series(dict))

使用NaN表示缺失数据,isnull()和notnull()可用于检测缺失数据

Series对象本身及其索引都有一个name属性obj.nameobj.index.name

Series的索引可以通过赋值方式就地修改

DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。

DataFrame既有行索引也有列索引

构建DataFrame可以直接传入一个由等长列表或Numpy数组组成的字典

data ={'state': ['Ohio', 'Ohio', 'Nevada', 'Nevada'],

   'year: [2000, 2001, 2000,2001'],

   'pop': [1.5, 1.7, 2.4,2.9]}

frame =DataFrame(data)

结果会自动加上索引且全部列会被有序排列

如果传入的列在数据中找不到,产生NaN值

将DataFrame的列获取为一个Series: frame['state'] frame2.year 返回的Series与DataFrame有相同的索引

可以通过赋值的方式对DataFrame进行修改

del frame['year']删除列

如果将嵌套字典传入DataFrame,外层字典的

键作为列,内层键作为行索引

frame.values得到值

索引对象

index对象不可修改

主要的Index对象:Index Int64Index MultiIndex DatetimeIndex PeriodIndex

Index的方法和属性

append

连接另一个Index对象产生一个新的Index

diff

计算差集

intersection

计算交集

union

计算并集

isin

计算一个指示各值是否都包含在参数集合中的布尔型数组

delete

删除索引i处元素得到新的x

drop

删除传入的值并得到新的Index

insert

将元素插入索引i处并得到新的Index

is_monotonic

各元素均大于等于前一个元素时返回True

is_unique

当Index没有重复值时返回True

unique

计算Index中唯一的数组

基本功能

重新索引reindex

插值(method)选项 ffill/pad 前向填充(或搬运)值

                                  bfill/backfill 后向填充(或搬运)值

丢弃指定轴上的项drop  对于DataFrame可以删除任意轴上的索引值

索引、选取和过滤

DataFrame的索引选型 obj[val] 选取单个列或一组列

                                          obj.ix[val] 选取DataFrame的单个行或一组行

get_value   set_value

算数运算或数据对齐

自动的数据对齐操作在不重叠的索引处引入了NA值

当+时,没有重叠的位置就会产生NA值,df1.add(df2, fill_value = 0)可以填充缺失值

DataFrame和Series之间的算术运算会将Series的索引匹配到DataFrame的列然后沿着行一直向下广播  如果希望匹配行且在列上广播,则用算数运算方法frame.sub(series3, axis=0)

函数应用和映射

F =lambda x: x.max() - x.min()

frame.apply(f,axis=1)

排序和排名

obj.sort_index() #对索引排序

obj.order() #按值对Series排序,缺失值放到末尾

obj.rank() 给出一个排名值,默认通过“为各组分配一个平均排名”破坏平级关系

汇总和计算描述统计

约简方法的选项

axis 约简的轴。DataFrame的行用0列用1

skipna 排除缺失值,默认值为True

level 如果轴是层次化索引的,则根据level分组约简

count

非NA值的数量

describe

针对Series或各DataFrame列计算汇总统计

min、max

 

argmin、argmax

计算最小或最大值的索引位置

idxmin、idxmax

计算最小或最大值的索引值

quantile

计算样本的分位数

sum

值的总和

mean

值的平均数

median

值的算术中位数

mad

根据平均值计算平均绝对离差

var

样本值的方差

std

样本值的标准差

skew

样本值的偏度

kurt

样本值的峰度

cumsum

样本值的累计和

cummin、cummax

样本值的累计最大值和累计最小值

cumprod

样本值的累计积

diff

计算一阶差分

pct_change

计算百分数变化

相关系数和协方差

Series的corr方法用于计算两个Series中重叠的、非NA的、按索引对齐的值的相关系数。cov

用于计算协方差

唯一值、值计数以及成员资格

obj.unique()

obj.value_counts()

处理缺失数据

NA处理方法

dropna

根据各标签的值中是否存在缺失数据对轴标签进行过滤

fillna

用指定值或插值方法填充缺失数据

isnull

 

notnull

 

层次化索引

MultiIndex索引,用一个由列表或数组组成的列表作为索引

data.unstack()重新安排到一个DataFrame中

重排分级顺序:swaplevel接受两个级别编号或名称,并返回一个互换了级别的新对象

对DataFrame和Series的描述和汇总都有一个level选项


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值