pandas 分组统计 列联表pd.crosstab()

2023-10-25 14:20

本文主要是介绍pandas 分组统计 列联表pd.crosstab(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pandas分组的统计方式

 

index减肥方式血压含量
0药物
1饮食
2锻炼正常
3抽脂
4药物
5抽脂
...  
498药物
499饮食

我们需要统计多个字段的次数:

如下表数据:

减肥方式

\血压含量

药物饮食锻炼抽脂总和
50383830156
正常46404045171
37443755173
总和133122115130500

通常多个组的统计可以采用DataFrame.groupby(by=['减肥方式','血压含量'])['减肥方式'].count().reset_index(name='次数')

                                                                              

这里我们能看到我们采用分组统计之后,能详细看到表格的统计,但是却不利于开发的统计

附下,采用分组统计的方式

def list_set(list_1):list_2 = list(set(list_1))list_2.sort(key=list_1.index)return list_2def func(df,df_title_X,df_title_Y):df_data = df.groupby(by=[df_title_X,df_title_Y])[df_title_X].count().reset_index(name='次数')data_dict = {}for i in df_data[df_data.columns[0]]:data_dict[i] = {}for a in df_data[df_data.columns[1]]:data_dict[i][a] = {}for i in range(df_data.shape[0]):data_dict[df_data[df_data.columns[0]].loc[i]][df_data[df_data.columns[1]].loc[i]] = df_data[df_data.columns[2]].loc[i]l = [list(i.values()) for i in data_dict.values()]return pd.DataFrame(np.array(l).T,columns=list_set(df_data[df_title_X].to_list()),index=list_set(df_data[df_title_X].to_list()))print(func(df,'减肥方式','血压含量'))

                                          结果如下:

                                                              

在查阅pandas的官方文档之后,我们了解到了这种叫做列联表,pandas.crosstab()的函数

import pandas as pd
pd.crosstab()

 

print(pd.crosstab(df['血压含量'],df['减肥方式'],margins=True,margins_name='总和'))
print(pd.crosstab(df['血压含量'],df['减肥方式'],margins=True,margins_name='总和').to_dict())

                                              

                                          

后续还有透视表pandas.pivot_table(),就自行查看pandas的官方文档。

这篇关于pandas 分组统计 列联表pd.crosstab()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283155

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Java反射实现多属性去重与分组功能

《Java反射实现多属性去重与分组功能》在Java开发中,​​List是一种非常常用的数据结构,通常我们会遇到这样的问题:如何处理​​List​​​中的相同字段?无论是去重还是分组,合理的操作可以提高... 目录一、开发环境与基础组件准备1.环境配置:2. 代码结构说明:二、基础反射工具:BeanUtils

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

pandas DataFrame keys的使用小结

《pandasDataFramekeys的使用小结》pandas.DataFrame.keys()方法返回DataFrame的列名,类似于字典的键,本文主要介绍了pandasDataFrameke... 目录Pandas2.2 DataFrameIndexing, iterationpandas.DataF

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl