休闲的时候回顾总结编程技术,很有趣!
最近,在网上学习了一下阿里出品的人工智能学习路线
系列。收获很大,需要总结一下。
今天总结python数据处理三剑客numpy,pandas,matplotlib
之一的——pandas
的基础内容。
Pandas基础内容的学习
首先,是这次学习的主要思维导图:
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)