python科学计算库(三)Pandas

介绍

2008年WesMcKinney开发出的库;专门用于数据挖掘的开源python库;以Numpy为基础,借力Numpy模块在计算方面性能高的优势;基于matplotlib,能够简便的画图;独特的数据结构。

优势

在这里插入图片描述

  • 增强图表可读性
  • 便捷的数据处理能力
  • 读取文件方便
  • 封装了Matplotlib、Numpy的画图和计算

数据类型

一维结构:Series
二维结构:Dataframe
多维结构:MultiIndex、panel

Series

pd.Series()
一个类似于一维数组的数据类型,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。
在这里插入图片描述

属性说明
series.index返回索引数组
series.values返回值数组
series.items
DataFrame

pd.DataFrame()
DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引

属性说明
shape返回形状
index返回行索引列表
columns返回列索引列表
values返回array的值
T转置
head()前N行
tail()后N行

dataframe.index=:修改索引
dataframe.reset_index(drop=False):重设索引
dataframe.set_index(keys,drop=True):设置某列为新的索引

MultiIndex

三维的数据类型;多级索引(也称层次化索引)是pandas的重要功能,可以在Series、DataFrame对象上拥有2个以及2个以上的索引。
pd.MultiIndex.from_arrays(arrays):创建多索引

Panel

pd.Panel(data=None, items=None, major_axis=None, minor_axis=None)

基本操作

索引

操作支持‘切片’操作
data[colum_name][row_name]:使用列、行值索引,先列后行
data.loc(colum_name,row_name):使用列、行值索引,先列后行(同上)
data.iloc(colum_index,row_index):使用列、行下标索引,先列后行

排序

dataframe.sort_values(by=,ascending=):指定列名排序
dataframe.sort_index():索引排序

运算

函数例子
add(value)data[‘open’].add(1)
sub{valuedata[‘open’].sub(1)
query(expr)data.query(“open<24 & open>23”)
isin(values)data[data[“open”].isin([23.53, 23.85])]
describe()返回count, mean, std, min, max 等
apply(func,axis=)自定义运算
data[['open', 'close']].apply(lambda x: x.max() - x.min(), axis=0)

open     22.74
close    22.85
dtype: float64

累积统计函数

函数作用
cumsum计算前n个数的和
cummax计算前n个数的最大值
cummin计算前n个数的最小值
cumpod计算前n个数的积

画图

DataFrame.plot(kind='line')

kind说明
line折线
bar柱状
barh横线柱状
hist直方图
pie饼状图
scatter散点图

文件读取

pandas.read_csv(filepath_or_buffer, sep =',', usecols ):读取
DataFrame.to_csv(path_or_buf=None, sep=', ’, columns=None, header=True, index=True, mode='w', encoding=None):保存

缺失值处理

isnull:判断是否有缺失数据NaN
fillna:实现缺失值的填充
dropna:实现缺失值的删除
replace:实现数据的替换

数据分组

pd.qcut(data,q):分成q组,区间自适应
pd.cut(data,bins=):自定义组区间
DataFrame.groupby(key, as_index=False):分组的列数据,可以多个

one-hot编码

pandas.get_dummies(data, prefix=None)

数据合并

pd.concat([data1, data2], axis=1):按照行或列进行合并,axis=0为列索引,axis=1为行索引
pd.merge(left, right, how='inner', on=None):可以指定按照两组数据的共同键值对合并或者左右各自

交叉表与透视表

交叉表:交叉表用于计算一列数据对于另外一列数据的分组个数(用于统计分组频率的特殊透视表)
pd.crosstab(value1, value2)
透视表:透视表是将原有的DataFrame的列分别作为行索引和列索引,然后对指定的列应用聚集函数
data.pivot_table()
DataFrame.pivot_table([], index=[])

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值