pandas复习(简单数据分析)

基本统计描述

"""
基本统计描述
"""
import pandas as pd
df = pd.read_csv(r'/Users/dx/Desktop/Python数据分析与机器学习/3.数据分析处理库-Pandas/简单数据分析/1.统计描述/data1.csv',
                 encoding = 'gbk') 


#基本统计数
df.成绩.describe()

#成绩数量
df.成绩.size

#成绩的最大值
df.成绩.max()

#成绩的最小值
df.成绩.min()

#成绩的和
df.成绩.sum()

#成绩的均值
df.成绩.mean()

#成绩的中位数
df.成绩.median()

#成绩的方差
df.成绩.var()

#成绩的标准差
df.成绩.std()

#成绩的累加
df.成绩.cumsum

#最大值和最小值的位置,argmax(),argmin()被弃用
df.成绩.idxmax()
df.成绩.idxmin()

#求百分位数(排序为前30%的值)interpolation = ’nearest‘如果前30%不是整数,取最近的一个数
df.成绩.quantile(0.3,interpolation = 'nearest')

分组函数groupby 和 聚合函数agg

"""
分组函数groupby()
"""
import pandas as pd
import numpy as np

df = pd.read_csv(r'/Users/dx/Desktop/Python数据分析与机器学习/3.数据分析处理库-Pandas/简单数据分析/2.分组统计groupby函数/data1.csv',
                 encoding = 'gbk')

#groupby(by =【作为分组根据的Series,变成新数据框中的index】)【想要计算和分析的Series】.agg({分析计算Series的具体内容,作为columns})
result1 = df.groupby(by = ['班级'])['成绩'].agg({'总分':np.sum,
                                      '人数':np.size,
                                      '平均成绩':np.sum,
                                      '标准差':np.std})


#自定义分组
bins = [min(df.成绩)-1, 70, 80, 90, max(df.成绩)+1]
labels = ['70分以下','71分-80分','81分-90分','91以上']
df['成绩分组'] = pd.cut(df.成绩, bins, labels = labels)

#分组之后再聚合aggregation:根据自定义分组进行统计
result2 = df.groupby(by = ['成绩分组'])['成绩'].agg({
                                      '总分':np.sum,
                                      '人数':np.size,
                                      '平均成绩':np.sum,
                                      '标准差':np.std})

生成数据透视表

"""
生成数据透视表
"""
import pandas as pd
import numpy as np

df = pd.read_csv(r'/Users/dx/Desktop/Python数据分析与机器学习/3.数据分析处理库-Pandas/简单数据分析/3.生成数据透视表/data1.csv',
                 encoding = 'gbk')

#按成绩自定义分组
bins =[min(df.成绩)-1, 70, 80, 90, max(df.成绩)+1]
labels = ['70以下','70-80','80-90','90以上']
df['成绩分组'] = pd.cut(df.成绩, bins, labels = labels)


'''
pivot_table(values,index,columns,aggfunc)
values:定义数据透视表中的值【成绩】
index:定义表中的行【分组】
columns:定义表中的列【性别】
aggfunc:定义数据透视表的函数【统计np.size】
'''
result = df.pivot_table(values = ['成绩'],
                        index = ['成绩分组'],
                        columns = ['性别'],
                        aggfunc = [np.size])#np.mean

相关分析

在这里插入图片描述
在这里插入图片描述

"""
相关性分析:corr()
"""
import pandas as pd

df = pd.read_excel(r'/Users/dx/Desktop/Python数据分析与机器学习/3.数据分析处理库-Pandas/简单数据分析/4.相关分析/data1.xlsx',
                 encoding = 'gbk')

#计算两列之间的相关性
result1 = df['人均GDP(元)'].corr(df['人均消费水平(元)'])
print(result1)

#列数较多时,计算相关系数矩阵,对角线总是等于1
result2 = df[['人均GDP(元)','人均消费水平(元)']].corr()
print(result2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值