Python科学计算(二)Pandans

系统 1295 0

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

https://www.yiibai.com/pandas/python_pandas_merging_joining.html

6.缺失值处理

删除法:当数据中某个变量大部分值都会缺失时,可以考虑删除变量;

              dropna完成。

替补法:对于连续变量,变量的分布近似或就是正态分布的话,可以用均值代替那些缺失值;

               如果变量是有偏的,可以使用中位数来代替那些缺失值

              对于离散变量,一般使用众数替换存在的缺失预测

             fillna完成。

 

7.实现数据透视表的功能

8.多层索引

 

 

 

 

 

 

 

 

 

 

 

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论