版权声明: https://blog.csdn.net/Wang_Jiankun/article/details/84621738
Python 数据分析与展示笔记4 – Pandas 库基础
Python 数据分析与展示系列笔记是笔者学习、实践Python 数据分析与展示的相关笔记
课程链接: Python 数据分析与展示
参考文档:
Numpy 官方文档(英文)
Numpy 官方文档(中文)
PIL 官方文档
Matplotlib 官方文档
Pandas 官方文档(英文)
Pandas 官方文档(中文)
Pandas 官方文档PDF下载
一、Pandas
1、安装、导入 Pandas
# 安装
pip3 install pandas
# 导入
import pandas as pd
2、Pandas 简介
- Pandas 是 Python 第三方库,提供高性能易用数据类型和分析工具
- Pandas 基于 NumPy 实现,提供更多样的索引,除了自动索引,可以添加自定义索引
- 使用索引时只能使用自动索引/自定义索引,不能混合使用
二、 Pandas 数据类型
1、Series 类型
Series是带索引标签的一维数组
创建 Series 类型: 可以基于以下类型创建
- 标量值
- Python 列表
- Python 字典
- 一维 ndarray 数组
- 其他函数
import pandas as pd
import numpy as np
# 基于标量值创建
s = pd.Series(10, index=['a', 'b'])
print(s)
>>> a 10
b 10
dtype: int64
# 基于列表创建
s = pd.Series([1, 2], index=['a', 'b'])
print(s)
>>> a 1
b 2
dtype: int64
# 基于字典创建,index 可以从字典的键值选择需要的,没有的话用 NaN填充
s = pd.Series({'b': 1, 'a': 2, 'c': 3}, index=['a', 'b', 'd'])
print(s)
>>> a 2.0
b 1.0
d NaN
dtype: float64
# 基于 ndarray 数组创建,index 也可以是 ndarray 数组
s = pd.Series(np.arange(3), index=np.arange(5, 0, -2))
print(s)
>>> 5 0
3 1
1 2
dtype: int32
Series 类型的基本操作:
- Series 类型包括 index 和 values 两部分,.index 获得索引
.values 获得数据 - Series 类型的操作类似 ndarray 类型,索引、切片、使用 numpy 函数
- Series 类型的操作类似 Python 字典类型,in、.get()
- Series 对象和索引都可以有一个名字,存储在属性.name中,可以修改
- Series 类型在运算中会自动对齐不同索引的数据,各自没有的索引其值赋为 NaN 再运算
import pandas as pd
import numpy as np
# 创建一个 Series 数组
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 获得索引
s.index
>>> Index(['a', 'b', 'c'], dtype='object')
# 获得数据
s.values
>>> [1 2 3]
# 索引访问数据,自动索引和自定义索引并存,但两套索引并存,但不能混用
s[['a', 'b']]
>>> a 1
b 2
s[0]
>>> 1
# 切片
s[:2]
>>> a 1
b 2
# numpy 运算函数
np.exp(s)
>>> a 2.718282
b 7.389056
c 20.085537
dtype: float64
# in 操作
'b' in s
>>> True
# .get() 操作
s.get('d', 4)
>>> 4
# 修改Series 对象和索引名称
print(s.name)
print(s.index.name)
s.name = 'series name'
s.index.name = 'index name'
print(s.name)
print(s.index.name)
>>> None
None
series name
index name
# Series 运算对齐索引
a = pd.Series([1, 2], ['a', 'b'])
b = pd.Series([2, 3], ['b', 'd'])
a + b
>>> a NaN
b 4.0
d NaN
dtype: float64
2、DataFrame
DataFrame 是一个表格型的数据类型,每列值类型可以不同,既有行索引、也有列索引,常用于表达二维数据,但可以表达多维数据
创建 Series 类型: 可以基于以下类型创建
- 二维 ndarray 对象
- 由一维 ndarray、列表、字典、元组或 Series 构成的字典
- Series 类型
- 其他的 DataFrame 类型
import pandas as pd
import numpy as np
# 基于二维 ndarray 对象创建
d = pd.DataFrame(np.arange(4).reshape(2, 2))
print(d)
>>> 0 1
0 0 1
1 2 3
# 基于 Series 字典
d = pd.DataFrame({'one': pd.Series([1, 2], ['a', 'b']),
'two': pd.Series([3, 4], ['a', 'b'])})
print(d)
>>> one two
a 1 3
b 2 4
# 基于列表类型的字典创建
d = pd.DataFrame({'one': [1, 2], 'two': [3, 4]})
print(d)
>>> one two
0 1 3
1 2 4
DataFrame 索引类型的基本操作:
方法 | 说明 |
---|---|
.reindex() | 改变或重排Series和DataFrame索引 |
.drop() | 删除Series和DataFrame指定行或列索引 |
.delete(loc) | 删除loc位置处的元素 |
.insert(loc,e) | 在loc位置增加一个元素e |
.append(idx) | 连接另一个Index对象,产生新的Index对象 |
.diff(idx) | 计算差集,产生新的Index对象 |
.intersection(idx) | 计算交集 |
.union(idx) | 计算并集 |
DataFrame 算术运算的基本操作:
方法 | 说明 |
---|---|
.add(d, **argws) | 加法运算,+ |
.sub(d, **argws) | 减法运算,- |
.mul(d, **argws) | 乘法运算,* |
.div(d, **argws) | 除法运算,/ |
GOOD LUCK!