## pandas时间序列
- pd.data_range(start=None, end=None,periods=None,freq="D")
## pandas时间序列
- pd.data_range(start=None, end=None,periods=None,freq="D")
df.join()
> 默认情况下是把hang'hang索引相同的数据合并到一起
### pandas常用统计方法
df[""].mean()
df["director"}.unique()
#获取演员的信息(字符串形式,以逗号隔开)
#tolist 大列表嵌套小列表
temp=df["actors"].str.split(",").tolist()
1) actors_list=[i for j in temp for i in j]
actors_num=len(set(actor_list))
df.argmax() #最大值位置
df.argmin() #最小值位置
### pandas 常用统计方法
### 12、布尔索引
df[df["Count_AnimalName"]>800]
df[(df["Count"]>800)&(df["count"]<1000)]
df["info"].str.split("/").tolist() #将info标签下的列转为字符串切割再放到一个列表中。
### 13、缺失数据的处理
- nan
- 0
> 判断是否为nan
pd.isnull(df)
pf.notnull(df)
> 处理方式
- 删除nan所在的行列
dropna(axis=0,how="any",inplace=False)
- any只要有一个为nan就删除
- all 全部为nan才删除
- inplace:是否进行原地修改
- 填充数据
t.fillna(t.mean()),
t2["age"]=t2["age"].fillna(t2["age"].mean()) print(t2)
t.fillna(t,median())
t.fillna(0)
> 处理为0的数据
t[t==0]=np.nan
#pandas取行取列的主意是将
#- 方括号写数字表示取行,对行进行操作
#- 字符串,表示的取列索引,对列进行操作
df[:20] #取前20行
df[:20]["Row_Labels"]
df.loc #通过标签进行索引
df.iloc #通过位置进行索引
t.loc["A","W"] #第a行w列
t.loc["A",["W","Z"]] #a行w列和a行z列,type:series
t.loc[["A","C"],["W","Z"]] a行c行于w列z列交汇处
t.loc["A":"C",["W","Z"]] a行到c行的w列和z列的数组
df.shape #行数列数
df.dtypes #列数据类型
df.ndim #数据维度
df.index #行索引
df.columns #列索引
df.values #对象值 二维数组
df.head(3) #显示头部三行
df.tail(3) #显示末尾几行
df.info() #相关信息概览
df.describe() #快速综合统计结果
df=df.sort_values(by="")
## 为什么要学习pandas
> 与numpy处理数值不同,pandas还可以处理其他类型的数据
- high-performance
- easy to use data structures
- data analysis tool
> series 一维,带标签的数组
> dataframe 二维
### series创建
## 总结
### 1、如何选择一行或者多行的数据
> 切片和索引
- 选择行 t[2], t[3:,:]
- 选择列 t[,4]
- 选择行列 不连续的 t[[2,3],[2,3]]
连续的: t[2:,3:]
- 索引 t[2,3]
### 2、给选择的行和列赋值
- 赋值 t[2:.3]=3
### 3、把大于10的替换
- 布尔索引
t[t>10]=10
- 三元运算符
np.where(t>10,20,0) 把t中大于10的换位20,其他替换为0
- 裁剪 t.clip(10,20) 小于10的替换为10,大于10的替换为20
### 4、转置
- t.T
- t.transpose()
- t.swapaxes(1,0)
### 5、读取本地文件
np.loadtxt(filepath,delimiter,dtype)
### 6、np.nan/np.inf
nan表示不是一个数字
- np.nan!=np.nan
- np.count_nonzero(np.nan!=np.nan)
- np.isnan(t)
inf表示无穷的
### 7、常用的统计函数
- t.sum()
- t.mean
- np.median(t)
- t.max()
- t.min()
- np.ptp(t)
- t.std(): 标准差反应数据的离散程度或者说稳定程度。
- nan :not a number:表示不是一个数字
- inf :infinity,inf表示正无穷,-inf表示负无穷。
- 两个nan不相等
- np.nan!=np.nan
- 利用以上特性可以判断数组中nan的个数,np.count_nonzero(t!=t)
- 判断是否含有nan: np.isnan(a)
- nan和任何值计算都为nan
> 将一组数组中的nan都替换为0,替换后的平均值肯定会变小,所以更一般的方式是把确实的数值替换为均值或者是直接删除有缺失值的一行。
### numpy常用方法
np.argmax(t,axis=0) #获取最大值,取每一列的最大值
np.argmin(t,axis=1) #获取最小值 取每一行的最小值
np.zeros((3,4)) #创建一个全为0的数组
np.ones((3,4)) #创建一个全为1的数组
np.eye(3) #创建一个对角线为1的正方形数组
### 6、轴
- 二维数组的轴,横轴和纵轴
- 三维数组,xyz轴
### 7、numpy读取数据
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
- dtype:数据类型
- delimiter 分割字符串,默认为空格
- skiprows 跳过前x行,一般跳过表头
- usecols 读取指定的列,索引,元组类型
- unpack:如果为True,读入属性将分别写入不同数组变量,false读入数据只写入一个数组变量,默认False。
# numpy学习
## 1、什么是numpy
- 快速
- 方便
- 科学计算的基础库
## 2、什么是numpy
> 一个在python中做科学计算的基础库,重在数值计算,也是大部分python科学计算库的基础库,多用在大型、多维数组上执行数值运算。
### 3、numpychuang'jian'shu'zu
- 保存到本地
- 描述信息
- 调整x与y的刻度的间距
- 线条的样式
- 标记特殊点
- 给图片加水印
# matplotlib
## 什么是matplotlib
- 数据可视化,更直观
- 使数据更加客观,更具说服力
> 最流行的python底层绘图库,主要做数据可视化图表,仿造matlab构建。
## matplotlib基本要点
### axis
> 指的是x轴或者y这种坐标轴
通过代码绘制一个折线图
# 数据分析
## 为什么要学习数据分析
- 岗位需求
- 是python数据科学的基础
- 是机器学习课程的基础
> 概念:数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们作出判断,以便采取适当行动。
> 流程
- 提出问题
- 准备数据
- 分析数据
- 获得结论
- 成果可视化