Python科学计算(二)Pandans
1.Pandas简介
Pandas是基于Numpy的一个开源Python库,被广泛用于快速分析数据,以及数据清洗和准备工作。
Pandas中有两类重要的数据结构,就是序列Series和数据框DataFrame。
2.Series和DataFrame数据结构
import numpy as np import pandas as pd s1 = pd.Series(np.array([1,2,3,4,5])) print(s1) print("***************") s2 = pd.Series(np.array([1,2,3]), index=[e,b,c]) print(s2)
3.查询数据
查询数据前五行
查询数据的末尾5行
查询指定的列
查询指定的行
查询指定的行和指定的列
多条件查询
4,统计分析
Series总和,均值,最大最小值,中位数,众数
import numpy as np import pandas as pd a = np.random.normal(size=10) d1 = pd.Series(2*a+3) d2 = np.random.f(2,4,size=10) d3 = np.random.randint(1,100,size=10) print(d1) print(d2) print(d3) print(d1.count()) #非空元素的计算 print(d1.min()) #最小值 print(d1.max()) #最大值 print(d1.idxmin()) #最小值的位置 print(d1.idxmax()) #最大值的位置 print(d1.sum()) #求和 print(d1.mean()) #均值 print(d1.median()) #中位值 print(d1.mode()) #众数 print(d1.var()) #方差 print(d1.std()) #标准差 print(d1.describe()) #一次性输出多个描述性统计指标 #自定义一个函数,将这些指标全部汇总在一起 def stats(x): return pd.Series([x.max(),x.min()],index=["最大值","最小值"]) print(stats(d1))
5.DataFrame:df.shape:维度
df.info:数据表的基本信息
df.dtypes:每一列数据的格式
df.columns:查询列的名称
df.corr()相关系数的求解
df.corrwith()
df.cov()协方差
pandas实现Sql操作
#pandas实现对数据的增删改查 import pandas as pd dict = { "Name":["LiuShunxiang","Zhangshan"], "Sex":["M","F"], "Age":[27,23], "Height":[165.7,167.2], "Weight":[61,63] } print(dict) student1 = pd.DataFrame(dict) print(student1) dict1 = { "Name":["Liu","Zhang"], "Sex":["M","F"], "Age":[27,23], "Height":[165.7,167.2], "Weight":[61,63] } student2 = pd.DataFrame(dict1) #将Student2中的数据增加到Student1中,通过concat数据实现 student3 = pd.concat([student1,student2],ignore_index="True") #对index无视 print(student3) #增加新的列--增加的新列没有赋值,就会出现NAN的形式 print(pd.DataFrame(student2,columns=[Age,Heihgt,Name,Sex,Weight,Score])) #删除Student2 #del student2 #print(student2) print("*************************") #删除指定的行 #print(student3.drop([0])) #查找25岁以下的学生 print(student3[student3["Age"]<25]) #删除指定的列 print(student3.drop([Height,Weight],axis=1)) #不论删除行还是列,都可以通过drop方法来实现,只需要设定好删除的轴即可,0删除行,1删除列。 print(student3) #将Liu学生的身高改为173cm student3.loc[student3[Name]==Liu,Height]=173 print(student3) #聚合groupby() print(student3.groupby(Sex).mean()) print(student3.groupby([Sex,Age]).mean()) #排序 print(student3.sort_values(by=[Sex,Age])) #merge表的连接
merge
6.缺失值处理
删除法:当数据中某个变量大部分值都会缺失时,可以考虑删除变量;
dropna完成。
替补法:对于连续变量,变量的分布近似或就是正态分布的话,可以用均值代替那些缺失值;
如果变量是有偏的,可以使用中位数来代替那些缺失值
对于离散变量,一般使用众数替换存在的缺失预测
fillna完成。
7.实现数据透视表的功能
8.多层索引
上一篇:
通过多线程提高代码的执行效率例子