- 数据分析概述
数据分析就是用适当的方法对收集来的大量数据进行分析,帮助人们在一处判断,以便采取适当行动
数据分析流程
jupyter notebook说明
- matplotlib:Matplotlib — Visualization with Python
基本要点
能将数据进行可视化,更直观的呈现
能使数据更加客观、更具说服力
最流行的python底层绘图库,主要做数据与可视化图表
主要使用的是matplotlib库里面的pyplot
折线图
plot(x,y):以x为横坐标轴,以y为横坐标轴,展示
show():展示绘制的图像
figure(figsize=(20,8),dpi=80)
figure图形图标的意思,在这里指的就是所画的图
通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例
在图像模糊时候可以传入dpi参数,让图像更加清晰
savefige("路径"):可以保存为svg这种矢量图格式,放大不会有锯齿
设置横竖坐标轴
xticks():里面可以放列表推导式或者使用range()来指定横坐标轴的刻度
如:plt.xticks(range(2,25))或者plt.xticks([i/2 for i in range(4,49)])
yticks():通常里面放range(),可以指定最小值和最大值,通过调整步长来调整刻度
如:plt.yticks(range(min(y),max(y)+1,2))
在里面添加rotation=度数的参数,可以指定旋转的度数
横竖轴也可以用字符串表示
要注意数字和字符串要一一对应,数据的长度一样
设置字体格式
matplotlib.rc():第一种可以传递多个参数,第二种只能传递一个参数
import matplotlib
matplotlib.rc("font",family='MicroSoft YaHei')
另一种方式:通过matplotlib下的font manager解决
添加描述信息
xlabel():x轴描述信息
ylabel():y轴描述信息
title():标题
grid():绘制网格
legend():设置图例
散点图:scatter()
条形图:bar()
直方图:hist()
echart、plotly、seabom
- numpy
轴
在numpy中可以理解为方向,使用0,1,2.....数字表示
对于一个一维数组,只有一个0轴
对于二维数组(shape(2,2)),有0轴和1轴
二维中:axis=0为跨行,即按列操作,从上到下;axis=1从左到右
对于三维数组(shape(2,2,2)),有0,1,2轴
三维中:axis=0为从外到内,1为从上到下,2为从左到右
numpy读取数据
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
转置
取值
取行
取第二行:print(t2[2])
取连续的多行
第三行及其之后的所有行:print(t2[2:])
取不连续的多行
取第二、八、十行:print(t2[[1,7,9]])
取列
取第0列:print(t2[:,0])
取连续的多列
第三列及其之后的所有列:print(t2[:,2:])
取不连续的多列
取第一、三列:print(t2[:,[0,2]])
取特定值
取第三行第四列的值:print(t2[2,3])
取多行多列
第三行到第五行,第二列到第四列:print(t2[2:5,1:4])
取多个不相邻的点
取(0,0)(2,1)(2,3):print(t2[[0,2,2],[0,1,3]])
对数值进行修改
先取值,再修改即可
特定值修改
clip():裁剪
数据的拼接
竖直拼接
水平拼接
数组的行列交换
其他方法
获取最大值最小值的位置
np.argmax(数组,维度)
np.argmin(数组,维度)
创建一个全为0的数组:np.zeros((x,y))
创建一个全为1的数组:np.ones((x,y))
创建一个对角线为1的正方形数组:np.eye(x)
随机数生成
浅拷贝和深拷贝
a=b,完全不复制,a和b相互影响
a=b[:],视图的操作,一种切片,会创建新的对象a,但是a的数据完全由b报告,他们两个的数据变化是一致的
a=b.copy(),复制,a和b互不影响
nan和inf
都是float类型
nan(NAN,Nan):not a number表示不是一个数字
当读取本地文件为float时候,若有缺失,就会出现nan
当做了一个不适合的计算的时候,也会出现
注意点
两个nan是不相等的(np.nan!=np.nan)
利用此特性可以判断数组内nan的个数,也可以通过np.count_nonzero(np.isnan())计算
nan和任何值计算都为nan
nan不能简单的替换
inf(-inf,inf):infinity,inf表示正无穷,-inf表示负无穷
当一个数字除以0,python会直接报错,numpy是一个inf或者-inf
常用统计函数
- pandas
numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能帮我们处理其他类型(如字符串、时间序列等)的数据
常见类型
Series 一维,带标签数组
修改dtype
切片和索引
DataFrame 二位,Series容器
DataFrame
行索引和列索引指定
可以转换为DataFrame类型
基础属性
整体情况查询
取值
df.loc:通过标签索引获取行数据
df.iloc:通过位置获取行数据
布尔索引
字符串方法
pandas读取数据
(25条消息) Pandas模块-数据读取和数据类型_Michael.py的博客-CSDN博客_pandas读取的数据类型
缺失值处理
数据合并
join():默认情况下,他是把行行索引相同的数据合并在一起
merge():按照指定的列,把数据按照一定的方式合并到一起
inner是交集,outer是并集
数据的分组聚合
group=df.groupby(by='Country')
得到的是<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000026BC1B9E0D0>
可以进行遍历
可以选中特定分组
可以调用聚合方法
常见的聚合操作
按多个条件进行分组
返回Series
返回DataFrame
索引和复合索引
简单的索引操作