pandas 笔记crosstab

news2024/9/24 9:22:56

用来计算两个(或更多)因子的交叉表(即频率表、列联表或透视表)。这个功能特别适用于统计分析和数据探索阶段,帮助理解不同变量之间的关系

1 基本用法

pd.crosstab(index, 
    columns, 
    values=None, 
    rownames=None, 
    colnames=None, 
    aggfunc=None, 
    margins=False, 
    margins_name='All', 
    dropna=True, 
    normalize=False)

2 参数说明

index用作表的行标签的数组、序列或数组列表
columns用作表的列标签的数组、序列或数组列表
values可选,数组或序列,当使用 aggfunc 不为空时,这个参数用来计算聚合值
rownames用于结果DataFrame的行标签的名称列表
colnames用于结果DataFrame的列标签的名称列表
aggfunc可选,用于聚合的函数或函数列表。如果提供了 values,则需要这个参数
margins布尔值,是否添加行/列边际小计或总计
margins_name边际的名称,默认是 'All
dropna布尔值,是否删除所有条目都为NaN的列
normalize布尔值或 {'all', 'index', 'columns'},用于规范化频率表的总和

3 举例

3.1 基本例子

假设有一个关于人口的数据集,我们有性别和职业两个列

import pandas as pd

data = {
    'Sport': ['Soccer', 'Soccer', 'Tennis', 'Soccer', 'Tennis', 'Basketball', 'Basketball'],
    'Age Group': ['Youth', 'Adult', 'Adult', 'Youth', 'Youth', 'Adult', 'Youth']
}

df = pd.DataFrame(data)
df

 

现在我们想要查看不同职业中性别的分布情况:

ct = pd.crosstab(index=df['Age Group'], columns=df['Sport'])
ct

3.2 聚合函数 values,aggfunc

如果你有一个包含多个相同记录的数据集,并且你想要计算某些数值的总和或平均值,你可以使用 valuesaggfunc 参数

data = pd.DataFrame({
    'Gender': ['Male', 'Female', 'Female', 'Male', 'Female', 'Male', 'Male'],
    'Occupation': ['Engineer', 'Doctor', 'Engineer', 'Artist', 'Doctor', 'Artist', 'Engineer'],
    'Salary': [1000, 1500, 900, 1100, 1700, 1200, 1300]
})
data

 

不用聚合函数的情况:

pd.crosstab(data['Gender'], data['Occupation'])

使用聚合函数的情况

pd.crosstab(data['Gender'], data['Occupation'], values=data['Salary'], aggfunc='mean')

3.3 margins

使用 margins=True 可以快速获得每一行和每一列的总计,以及整个表的总计。

pd.crosstab(data['Gender'], 
    data['Occupation'], 
    values=data['Salary'], 
    aggfunc='mean', 
    margins=True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(二)---ROS2与UE5进行图像数据传输

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博…

HarmonyOS-MPChart以X轴或y轴为区间设置不同颜色

本文是基于鸿蒙三方库mpchart OpenHarmony-SIG/ohos-MPChart 的使用,以X轴为区间设置不同的曲线颜色。 mpchart本身的绘制功能是不支持不同区间颜色不同的曲线的,那么当我们的需求曲线根据x轴的刻度区间绘制不同颜色,就需要自定义绘制方法了。…

LVS (Linux virual server)

LVS简介 LVS(Linux Virtual Server)是一个基于Linux平台的开源负载均衡系统。它通过将多个服务器组成一个虚拟服务器集群,实现了高效的负载均衡和流量分发。 LVS的核心思想是利用IP负载均衡技术和内容请求分发机制&a…

传知代码-【CLIP】文本也能和图像配对

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 模态:数据的一种形式,如图像、文本、声音、点云等。 多模态学习,就是利用模型同时处理多个模态数据,有助于提高模型的准确性和泛化能力。在自动驾驶场景中&am…

利用住宅代理应对机器人流量挑战:识别、使用与检验指南

引言 什么是机器人流量?其工作原理是什么? 机器人流量来自哪里? 合法使用机器人时如何避免被拦截? 如何检验恶意机器人流量? 总结 引言 你是否曾经遇到过访问某个网站时,被要求输入验证码或完成一些其…

源代码加密的意义和办法?

一、源代码加密的意义1、防止恶意修改:未加密的源代码容易被恶意用户或竞争对手获取并修改,以植入恶意代码或病毒,损害软件的功能性和安全性。加密后的源代码即使被非法获取,也无法修改或理解,从而防止了被破坏的风险。…

品味白酒的四大步骤,体验不一样的美酒人生

在华夏千年的文化传承中,白酒如同一部厚重的历史长卷,每一滴都蕴含着丰富的故事与智慧。豪迈白酒(HOMANLISM),作为这长卷中的璀璨篇章,更是以其不同的魅力,吸引着无数品鉴者去探寻其中的奥秘。今…

android13 禁用wifi

总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况分析 3.代码分析 3.1 代码位置1 3.2 代码位置2 3.3 代码位置3 4.代码修改 5. 彩蛋 1.前言 这个文章讲的是,在frameworks里面禁止打开wifi。 2.情况分析 我们打开wifi一般是 public static void turnOnWifi(Co…

Linux修改ssh默认端口22为其他端口2024

一、修改配置文件 修改ssh服务的配置文件: /etc/ssh/sshd_config 将Port 22放开注释,并将22修改为2024,并保存 二、重启sshd服务 systemctl restart sshd 三、重启服务失败 如果重启服务失败,可以执行以下命令: …

web 自动化测试,一定得掌握的 8 个核心知识点

使用 cypress 进行端对端测试,和其他的一些框架有一个显著不同的地方,它使用 javascript 作为编程语言。传统主流的 selenium 框架是支持多语言的,大多数 QA 会的python 和 java 语言都可以编写 selenium 代码,遇到需要编写 js 代…

HoloLens 和 Unity 空间坐标系统 Coordinate systems

坐标系统 Spatial coordinate systems 所有的 3D 图形应用程序都使用笛卡尔坐标系统来推理虚拟物体的位置和朝向。 这些坐标系建立三个垂直轴:X、Y 和 Z。 添加到场景的每个对象在其坐标系中都有一个 XYZ 位置。 Windows 调用在物理世界中具有实际意义的坐标系统…

Win10系统配置JDK和Maven环境变量

目录 一、Win10系统配置JDK和Maven环境变量 二、测试 配置环境变量可以不用cd到应用程序的bin目录,就可以运行。配置环境变量可以方便IDE开发工具识别JDK和Maven 省去了手动选择。 一、Win10系统配置JDK和Maven环境变量 1、右键我的电脑>属性,弹出…

【Java 并发编程】(二) 从对象内存布局开始聊 synchronized

对象的内存布局 首先抛出一个经典面试题: 一个 Object 对象占多大? 这里我用工具打印了出来, 发现是 “16bytes”, 也就是 16B; 为什么? 请继续往下看; 普通对象(除了数组), 由markword, 类型指针, 实例数据(就是对象里的成员), 对齐填充(整个对象大小要能被8B整数, 方便6…

谷歌前CEO施密特放飞自我:斯坦福课堂上的AI洞见

谷歌前CEO施密特放飞自我:斯坦福课堂上的AI洞见 曾经担任谷歌CEO长达10年之久的Eric Schmidt,近日在斯坦福大学计算机学院的会议上发表了一场引人深思的演讲。在这场讲座中,他全程“放飞自我”,甚至在讲话中提醒台下学生&#xf…

将 PDF 转换为 JPG 的 3 种简便方法

PDF(Portable Document Format)是Adobe公司开发的一种用于呈现文档的常用文件格式。PDF文件可以包含图像和文本。它承载着固定布局平面文档的完整描述,包括文本、字体、图像等信息。但很多时候,你需要将PDF转换为JPG。 您想将PDF…

The Science of Procrastination - And How To Manage It

img:Perseid Meteors over Stonehenge 一场英仙座流星雨 虽然英仙座流星雨在昨晚达到了顶峰,但一些英仙座流星雨在接下来的几个晚上仍然可以看到 Lets face it. Youre likely reading this article in an effort to avoid some other tasks youre pro…

UART通信实现与验证(RS485)

前言 UART是一种常用的串行通信协议,RS485则是一种用于长距离和抗干扰的物理层标准。结合UART和RS485可以实现可靠的数据传输,特别是在多点通信和长距离应用中。通过合适的硬件连接、软件配置和验证测试,可以确保这一通信系统的稳定性和数据完…

达美航空运营中断造成重大财务损失

达美航空遇运营中断 达美航空公司(Delta Air Lines,股票代码:DAL)周四宣布,由于CrowdStrike引发的系统故障,其运营受到了严重影响。本季度,该公司预计收入将减少3.8亿美元。这次故障导致达美航…

stm32入门学习14-电源控制

有时候我们的程序中有些触发执行条件,有时这些触发频率很少,我们的程序就一直在循环,这样就很浪费电,我们可以通过PWR电源控制来实现低功耗模式,即只有在触发时才执行程序,其余时间可以关闭一些没必要的设备…

zdppy+vue3+onlyoffice文档管理系统项目实战 20240812上课笔记

遗留问题 1、增加新建和导入按钮&#xff0c;有按钮了&#xff0c;但是还没有完善&#xff0c;图标还不对&#xff0c;需要解决 2、登录功能 3、用户管理 4、角色管理 5、权限管理 6、分享功能 解决新建和导入的图标问题 解决代码&#xff1a; <a-button type"prim…