博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python科学计算库(三)Pandas
阅读量:4222 次
发布时间:2019-05-26

本文共 2297 字,大约阅读时间需要 7 分钟。

介绍

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{value data[‘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.74close    22.85dtype: 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=[])

转载地址:http://gbqmi.baihongyu.com/

你可能感兴趣的文章
POJ 1154 解题报告
查看>>
POJ 1101 解题报告
查看>>
ACM POJ catalogues[转载]
查看>>
常见的排序算法
查看>>
hdu 3460 Ancient Printer(trie tree)
查看>>
DAG以及任务调度
查看>>
LeetCode——DFS
查看>>
MapReduce Task数目划分
查看>>
3126 Prime Path
查看>>
app自动化测试---ADBInterface驱动安装失败问题:
查看>>
九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>