永无止境的假期--之基础pandas篇

2020/04/26 休息

Posted by WangXiaoDong on April 26, 2020
休闲的时候回顾总结编程技术,很有趣!

最近,在网上学习了一下阿里出品的人工智能学习路线系列。收获很大,需要总结一下。

今天总结python数据处理三剑客numpy,pandas,matplotlib之一的——pandas基础内容

Pandas基础内容的学习

首先,是这次学习的主要思维导图: pic1

1. Pandas介绍

1.1 什么是Pandas

Pandas = Panel + data + analysis Panel面板数据--计量经济学中的三维数据

其核心数据机构有三种:

  • DataFrame
  • Series
  • Panel

1.2 什么是Pandas

  • 便捷的数据处理能力
  • 读取文件方便
  • 封装了Matlablib

1.3 DataFrame

1.3.1 结构

行列索引的二维数组(类比数据库)

  • index 行索引
  • columns 列索引
pandas.date_range(start=None, end=None, periods=None, freq='D', tz=None, normalize=False, name=None, closed=None, **kwargs)
该函数主要用于生成一个固定频率的时间索引,在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。
1.3.2 属性
  • shape:得到数据的形状
  • index:得到数据的行索引(不能通过索引单独修改)
  • columns:得到数据的列索引
  • values: 得到仅仅数据的ndarray
1.3.3 常用方法
df.head()
df.tail()
1.3.4 索引设置
修改行列索引
重设索引
设置多个索引--df.set_index(['a','b']):返回MultiIndex
1.3.5 MultiIndex与Panel
  • MultiIndex
    • names: levels的名称
    • levels: 每个level的元组值
  • Panel :DataFrame的容器—未来弃用,不用仔细学

1.4 Series

1.4.1 结构

带索引的一位数组

可以用字典创建

1.4.1 属性

index – 索引

values – 1维的ndarray

2. 基本数据操作

2.1 索引操作

2.1.1 直接索引

先列后行

2.1.2 按名字索引

loc

2.1.3 按数字索引

iloc

2.1.4 组合索引

ix–数字、名字

2.2 赋值操作

2.3 排序

dataframe.sort_values(by=’‘,accending=’True’):按照内容排序

dataframe.sort_index:按照索引排序

3. 运算

3.1 算数运算

dataframe +/-/*/ number

3.2 逻辑运算

3.2.1 逻辑运算符
3.2.2 逻辑运算
<、>、 、&
  • 布尔索引

3.2 逻辑运算符 & 布尔索引

dataframe.query(“col_name1>num” & “”)

3.2.2 函数

3.3 统计运算

dataframe.max()/min()/…

3.3.1 获取综合统计指标
3.3.2 具体统计指标
3.3.3 累积统计指标

dataframe.cumsum()/..

3.4 自定义运算

dataframe.apply() 参见:Pandas的Apply函数——Pandas中最好用的函数

3. 画图

df.plot(x,y,kind=”line/bar/hist/pie/scatter”) st.plot

3. IO操作

3.1 csv

pd.read_csv() df.to_csv()

3.2 hdfs5

hdf5 存储三维数据
该格式支持压缩,使用方式是blosc,这个速度很快,也是pandas默认支持的,可以提高磁盘利用率,节省空间

pd.read_hdf(path,key=)
df.to_hdf(path,key=)

3.3 json

pd.read_json(path)
df.to_json(path)