数据分析三大神器之二:Pandas

数据分析三大神器之二:Pandas

简介:

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

>>> from pandas import Series, DataFrame

>>> import pandas as pd

目录

数据分析三大神器之二:Pandas

1、常用函数

2、Series

3、DataFrame

4、Index


1、常用函数

函数

说明

pd.isnull(series)

pd.notnull(series)

判断是否为空(NaN)

判断是否不为空(not NaN)

2、Series

Series可以运用ndarray或字典的几乎所有索引操作和函数,融合了字典和ndarray的优点。

属性

说明

values

获取数组

index

获取索引

name

values的name

index.name

索引的name

 

2.1Series常用函数

函数

说明

Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)

生成一个Series

Series.copy()

复制一个Series 

Series.reindex([x,y,...], fill_value=NaN)

Series.reindex([x,y,...], method=NaN)

Series.reindex(columns=[x,y,...])

重返回一个适应新索引的新对象,将缺失值填充为fill_value

返回适应新索引的新对象,填充方式为method

对列进行重新索引

Series.drop(index)

丢弃指定项

Series.map(f)

应用元素级函数 

eindex的method选项:

ffill, bfill     向前填充/向后填充

pad, backfill   向前搬运,向后搬运

2.2排序函数

排序函数

说明

Series.sort_index(ascending=True)

根据索引返回已排序的新对象

Series.order(ascending=True)

根据值返回已排序的对象,NaN值在末尾

Series.rank(method='average', ascending=True, axis=0)

为各组分配一个平均排名

df.argmax()

df.argmin()

返回含有最大值的索引位置

返回含有最小值的索引位置

rank的method选项

'average'    在相等分组中,为各个值分配平均排名

'max','min'   使用整个分组中的最小排名

'first'      按值在原始数据中出现的顺序排名

 

3、DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。

DataFrame可以通过类似字典的方式或者.columnname的方式将列获取为一个Series。行也可以通过位置或名称的方式进行获取。

    为不存在的列赋值会创建新列。

>>> del frame['xxx'] # 删除列

3.1常用属性

属性

说明

values

DataFrame的值

index

行索引

index.name

行索引的名字

columns

列索引

columns.name

列索引的名字

ix

返回行的DataFrame

ix[[x,y,...], [x,y,...]]

对行重新索引,然后对列重新索引

T

frame行列转置

3.2常用函数

函数

说明

DataFrame(dict, columns=dict.index, index=[dict.columnnum])

DataFrame(二维ndarray)

DataFrame(由数组、列表或元组组成的字典)

DataFrame(NumPy的结构化/记录数组)

DataFrame(由Series组成的字典)

DataFrame(由字典组成的字典)

DataFrame(字典或Series的列表)

DataFrame(由列表或元组组成的列表)

DataFrame(DataFrame)

DataFrame(NumPy的MaskedArray)

构建DataFrame

数据矩阵,还可以传入行标和列标

每个序列会变成DataFrame的一列。所有序列的长度必须相同

类似于“由数组组成的字典”

每个Series会成为一列。如果没有显式制定索引,则各Series的索引会被合并成结果的行索引

各内层字典会成为一列。键会被合并成结果的行索引。

各项将会成为DataFrame的一行。索引的并集会成为DataFrame的列标。

类似于二维ndarray

沿用DataFrame

类似于二维ndarray,但掩码结果会变成NA/缺失值

df.reindex([x,y,...], fill_value=NaN, limit)

df.reindex([x,y,...], method=NaN)

df.reindex([x,y,...], columns=[x,y,...],copy=True)

返回一个适应新索引的新对象,将缺失值填充为fill_value,最大填充量为limit

返回适应新索引的新对象,填充方式为method

同时对行和列进行重新索引,默认复制新对象。

df.drop(index, axis=0)

丢弃指定轴上的指定项。

3.3排序函数

排序函数

说明

df.sort_index(axis=0, ascending=True)

df.sort_index(by=[a,b,...])

根据索引排序

3.4汇总统计函数

汇总统计函数

说明

df.count()

非NaN的数量

df.describe()

一次性产生多个汇总统计

df.min()

df.min()

最小值

最大值

df.idxmax(axis=0, skipna=True)

df.idxmin(axis=0, skipna=True)

返回含有最大值的index的Series

返回含有最小值的index的Series

df.quantile(axis=0)

计算样本的分位数

df.sum(axis=0, skipna=True, level=NaN)

df.mean(axis=0, skipna=True, level=NaN)

df.median(axis=0, skipna=True, level=NaN)

df.mad(axis=0, skipna=True, level=NaN)

df.var(axis=0, skipna=True, level=NaN)

df.std(axis=0, skipna=True, level=NaN)

df.skew(axis=0, skipna=True, level=NaN)

df.kurt(axis=0, skipna=True, level=NaN)

df.cumsum(axis=0, skipna=True, level=NaN)

df.cummin(axis=0, skipna=True, level=NaN)

df.cummax(axis=0, skipna=True, level=NaN)

df.cumprod(axis=0, skipna=True, level=NaN)

df.diff(axis=0)

df.pct_change(axis=0)

返回一个含有求和小计的Series

返回一个含有平均值的Series

返回一个含有算术中位数的Series

返回一个根据平均值计算平均绝对离差的Series

返回一个方差的Series

返回一个标准差的Series

返回样本值的偏度(三阶距)

返回样本值的峰度(四阶距)

返回样本的累计和

返回样本的累计最大值

返回样本的累计最小值

返回样本的累计积

返回样本的一阶差分

返回样本的百分比数变化

3.5计算函数

计算函数

说明 

df.add(df2, fill_value=NaN, axist=1)

df.sub(df2, fill_value=NaN, axist=1)

df.div(df2, fill_value=NaN, axist=1)

df.mul(df2, fill_value=NaN, axist=1)

元素级相加,对齐时找不到元素默认用fill_value 

元素级相减,对齐时找不到元素默认用fill_value 

元素级相除,对齐时找不到元素默认用fill_value 

元素级相乘,对齐时找不到元素默认用fill_value 

df.apply(f, axis=0)

将f函数应用到由各行各列所形成的一维数组上

df.applymap(f)

将f函数应用到各个元素上

df.cumsum(axis=0, skipna=True)

累加,返回累加后的dataframe

3.6索引

索引方式

说明

df[val]

选取DataFrame的单个列或一组列

df.ix[val]

选取Dataframe的单个行或一组行

df.ix[:,val]

选取单个列或列子集

df.ix[val1,val2]

将一个或多个轴匹配到新索引

reindex方法

将一个或多个轴匹配到新索引

xs方法

根据标签选取单行或者单列,返回一个Series

icol、irow方法

根据整数位置选取单列或单行,并返回一个Series

get_value、set_value

根据行标签和列标签选取单个值

运算:

默认情况下,Dataframe和Series之间的算术运算会将Series的索引匹配到的Dataframe的列,沿着列一直向下传播。若索引找不到,则会重新索引产生并集。

 

4、Index

pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。Index对象不可修改,从而在多个数据结构之间安全共享。

4.1主要属性

主要的Index对象

说明

Index

最广泛的Index对象,将轴标签表示为一个由Python对象组成的NumPy数组

Int64Index

针对整数的特殊Index

MultiIndex

“层次化”索引对象,表示单个轴上的多层索引。可以看做由元组组成的数组

DatetimeIndex

存储纳秒级时间戳(用NumPy的Datetime64类型表示)

PeriodIndex

针对Period数据(时间间隔)的特殊Index

 

4.2常用函数

函数

说明

Index([x,y,...])

创建索引

append(Index)

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

diff(Index)

计算差集,产生一个新的Index

intersection(Index)

计算交集

union(Index)

计算并集

isin(Index)

检查是否存在与参数索引中,返回bool型数组

delete(i)

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

drop(str)

删除传入的值,得到新Index

insert(i,str)

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

is_monotonic()

当各元素大于前一个元素时,返回true

is_unique()

当Index没有重复值时,返回true

unique()

计算Index中唯一值的数组

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值