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.多层索引

经验分享 程序员 微信小程序 职场和发展