Python数据分析与应用
Numpy数据处理库
导入:import numpy as np
1.数组的声明
方法1:np.array(元素列表)
方法2:np.arange(开始值,终止值,步长)
方法3:np.linspace(开始值,终止值,元素个数)步长一致
方法4:np.random.randint(开始值,终止值,size(行,列))随机创建数组
方法5:np.random.random(个数)产生0-1之间的小数
例
import numpy as np
#方法1
arr1=np.array([1,3,5,11,25,35,88,45,69])
print(arr1)
#方法2
arr2=np.arange(1,20,3)
print(arr2)
#方法3
arr3=np.linspace(1,50,10)
print(arr3)
#方法4
np.random.seed(10)#设置随机种子,下结果每次都一样
arr4=np.random.randint(10,50,size=(3,3))
print(arr4)
#方法5
np.random.random(50)
2.数组的属性
ndim:数组的维度
size:元素个数
shape:数组的现状(m行n列)
dtype:数组的类型
3.数组的操作
1.访问元素
方法1:索引,切片
方法2.布尔值访问
例
#案例:一个工厂一季度产值如下:
np.random.seed(30)
arr_v8 = np.random.randint(100,500,size=(10,3))
print("原来的数据值:\n",arr_v8)
#要求:取出2月份中,产值大于200的产品信息
arr_bool3 = arr_v8[:,1]>200 #2月份产品大于200的信息
print("取出的2月份大于200的信息\n",arr_v8[arr_bool3,:])
2.改变形状
方法1:数组名.reshape(行,列)
此方法不会对原数组产生影响,它会返回一个改变维度后的数组。逻辑改变。
方法2:数组民.shape=行,列
此方法改变数组原有属性。物理改变。
3.改变形状的函数
1.数组的展平降维(多维到一维)
数组名.flatten()横向展平
数组名.flatten(‘F’)纵向展平
2.数组的分隔和组合
组合命令:
np.concatenate((数组名1,数组名2,…),axis=0/1)
注意:axis=1时为横向操作,axis=1是为纵向操作。
分隔命令:
np.split(数组名,n,axis=0/1)
作用:把数组均等的分隔成n个数组
4.数组中的数据的统计
1.常用的统计函数
sum()求和
max()求最大值
min()求最小者
mean()求均值
std()求标准差
var()求方差
pandas库数据分析
导入:import pandas as pd
1.创建pandas数据和读取本地磁盘文件
1.创建pandas中的数据
数据类型1:DataFrame(二维数组)
注意:相当于Excel中的一个表格
语法:pd.DataFrame(数组/字典,columns=[],index=[])
注意:columns设置标题,index设置行索引
数据类型2:Series(一位数组)
注意:相当于Excel中的表格的一列
语法:pd.Seeries()
2.读取本地磁盘的文件数据
1.来自CSV格式得到数据
语法1:
pd.read_table(“表名.csv”,sep=分隔符,encoding="")
语法2:
pd.read_csv(“表名.csv”,sep=分隔符,encoding="")
说明:sep用来指定csv文件的分隔符(默认逗号);encoding编码形式
2.读取Excel文件的数据
语法:
pd.read_excel(“表名.xlsx”,sheetname=0)
说明:sheetname指定读取表格,默认第一个表格,序号从0开始
2.数据的操作
1.DataFrame常用属性
读取完的文件数据.values 查看文件值
读取完的文件数据.dtypes 个列表的类型
读取完的文件数据.columns 列标题
读取完的文件数据.shape 元素个数
2.查找数据
方法1:直接用列名查找
方法2:使用方法loc查找:名.loc[行,列]
方法3:使用iloc查找
说明:loc必须使用列名或行索引;iloc使用的是列号和行号 ,里面只可以出现数值序号。
3.简单的描述性统计
名.nsmallest(n,‘m’)找出m中最小的n个信息
名.nlargest(你,‘m’)找出m中最大的m个信息
名【‘m’】.describe()输出m的描述性统计量
4.修改数据
直接赋值修改
注:下代码将输出的结果对齐。
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
4.与时间有关数据
1.创建时间序列
pd.date_range(start='20050501',end="20200601",freq="6D"))
pd.date_range(start='20200501',periods=10,freq="3H"))
说明:start开始时间,end为结束时间,freq是步长D为天M是月Y是年H是小时,periods是个数。
2.对时间数据的操作
resample(“时间间隔”)
3.将对象数据转换为时间数据
pd.to_datetime(日期数据)
4.重新设置索引命令
df.set_index(“日期”)
注意:使用resample关键字进行时间采样数据,必须将时间设置为索引。
5.日期计算
日期+pd.Timedelta(days=n)给日期加n天
日期+pd.Timedelta(weeks=n)给日期加n个星期
5.数据排序
1.语法
sort_values(by=[],ascending=True,axis=0,inplace=False)
by=排序内容
ascending =True是升序
inplace=False 返回一个新的DataFrame表,不对原表操作
axis = 0/1按行或列操作
2、分组聚合
将数据按照一定规则分组,然后可以对每一组进行聚合操作
df_group = df.groupby(by=‘列名’)[“交易额”] #生成的是一个分组对象
df_group.聚合函数() #对每1组进行的聚合操作