pandas基础
1.pandas的优势
- 增强图表可读性
- 便捷的数据处理能力
- 读取文件方便
- 封装了Matplotlib、Numpy的画图和计算
2.数据基本操作
1.索引操作
- 直接 – 先列后行
- .loc – 先行后列,索引值
- iloc – 先行后列,索引值的下标
- ix – 先行后列,混合索引
2.赋值操作
-
对象[‘’]
-
对象. close
3.排序操作
1.dataframe
对象.sort_vlaues()
by – 按照什么排序
ascending – 升降序
对象.sort_index()
注意:by这个参数可以接受多个值,优先按照第一个索引排序,如果相同,按照后面的
2.series
对象.sort_values()
对象.sort_index()
DataFrame运算
1.算术运算
直接使用方法,add,sub …
也可以使用符号
2.逻辑运算
1.逻辑运算符号<、>、|、&
直接判断
2.逻辑运算函数
对象.query(’’)
对象.isin([])
3.统计函数
对象.describe()
统计函数
sum
mean
…
mode — 众数
idxmax
idxmin
4.累计统计函数
函数 作用
cumsum 计算前1/2/3…/n个数的和
cummax 计算前1/2/3…/n个数的最大值
cummin 计算前1/2/3…/n个数的最小值
cumprod 计算前1/2/3…/n个数的积
5.自定义运算
apply(func, axis =)
func — 自己定义的函数
pandas画图
对象.plot()
kind ----
line ----- 折线图
bar ----
barh ---- 条形图旋转
hist ----
pie ----
scatter
文件读取与存储
1.csv
1.读取 — pd.read.csv
参数:
usecols — 需要哪一列
2.存储 — 对象.to_csv
参数:
columns — 保存哪列
2.hdf
1.读取 — pd.read_hdf()
2.写入 — pd.to_hdf()
注意:保存文件是***.h5
3.json
1.读取 — 对象.read_json()
2.写入 — 对象.to_json()
参数:
orient — 按照什么方式进行读取与写入
lines — 是否按照行读取与写入
4.推荐使用hdf
1.压缩方式读取,效率快
2.压缩后,节省空间
3.支持跨平台
高级处理-缺失值处理
判断数据是否为NaN:
np.any(pd.isnull(movie)) #里面如果有一个缺失值就返回True
np.any(pd.notnull(movie)) #里面如果有一个缺失值就返回False
处理方式:
存在缺失值NaN,并且是np.nan
1.删除存在缺失的:dropna(axis = ‘rows’)
注:不会修改原数据,需要接受返回值
2.替换缺失值:fillna(value, inplace = True)
value:替换成的值
inplace:True:会修改原数据,False:不会替换原数据,生成新对象
不是NaN,有默认标记的
对象.replace()
to_replace — 替换前的值
value — 替换后的值
数据离散化
1.什么是数据离散化
把一些数据分到某个区间,最后用不同的符号或者数字表达
2.数据离散化API
pd.qcut() ---- 把数据大致分为数量相等的几类
pd.cut() ---- 指定分组间隔
数量统计:
对象.value_counts()
3.one-hot编码
就是把数据转换成为0,1统计类型
别名:哑变量,热独编码
API:
pd.get_dummies()
pd.concat()
axis =
pd.merge()
left — 左表
right — 右表
on — 指定键
how — 按照什么方式进行拼接
交叉表与透视表
1.什么是交叉表,透视表
就是探索两列数据之间的关系
2.pd.crosstab
返回具体的数量
3.对象.pivot_table()
返回占比情况
分组与聚合
1.api
对象.groupby()
参数:as_index — 是否进行索引
注意:可以对数据进行多次分组,需要里面传递一个列表进行完成