9.Python数据特征分析与数据交叉表的使用

1.Pandas数据特征分析

数值变量的基本描述

df.describe(
 percentiles :需要输出的百分位数,列表格式提供,如[.25, .5,.75]
 include = 'None ':要求纳入分析的变量类型白名单 None (default):只纳入数值变量列A list-like of dtypes:列表格式提供希望纳入的类型all :全部纳入
exclude :要求剔除出分析的变量类型黑名单,选项同上
)
import pandas as pd
df = pd.read_excel('stu_data.xlsx')
# 1.获取数值变量的基本描述
df.describe(include='all')

在这里插入图片描述
分类变量的频数统计

Series.value_counts(
 normalize = False :是否返回构成比而不是原始频数
 sort = True :是否按照频数排序(否则按照原始顺序排列)
 ascending = False : 是否升序排列
 bins :对数值变量直接进行分段,可看作是 pd.cut 的筒便用法
 dropna = True :结果中是否包括 NaN
)
# 分类变量频数统计 value_counts()
# 按照软件分组(常规方法)
print('按照软件分组(常规方法)')
print(df.groupby('软件')['软件'].count())

print('使用value_counts')
print(df.软件.value_counts()) # 等同于df.value_counts(df.软件)

# normalize:按照比例输出 sort是否排序 默认True排序
print(df.软件.value_counts(normalize=True,sort=False))

# 按照分组的方式输出
pd.value_counts(df.体重,bins=10)

在这里插入图片描述

在这里插入图片描述

2.Pandas数据交叉表

pivot_table和crosstab如何选择:crosstab最适合计算频数,pivot_table适合计算多种value

df.pivot_table(
 行列设定 
index / columns :行变量/列变量,多个时以list 形式提供
单元格设定
values :在单元格中需要汇总的变量列,可不写
aggfunc = numpy.mean : 相应的汇总函数
汇总设定
margins = False :是否加入行列汇总
margins_name = 'All':汇总行/列的名称
缺失值处理
fill_value = None :用于替换缺失值的数值
pd.crosstab(
选项和 pivot_table 几乎相同
相对而言需要打更多字母,因此使用更麻烦
但是计算频数最方便
输出格式为数据框 )
import pandas as pd
df = pd.read_excel('stu_data.xlsx')
# pivot_table使用
# 单行分类
df.pivot_table(index='课程', aggfunc='mean') 

# 多行单列分类
df.pivot_table(index=['课程','性别'],columns='开设',aggfunc='sum')

# 多行单列分类后指定需要查看的数值
df.pivot_table(index=['课程','性别'],columns='开设',values=['身高','体重'])

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

# crosstab
# 多行单列查看数值计数
pd.crosstab(index=[df.性别,df.课程],columns=df.开设)

# 查看平均值,必须指定value
pd.crosstab(index=[df.性别,df.课程],columns=df.开设,aggfunc='mean',values=df.身高)

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值