当前位置: 首页 > news >正文

【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()

目录

1 虽然这是个很基础的知识,但是我觉得有必要记录下

2 整洁数据表

3 交叉数据表的2种形式

3.0 交叉表的名字

3.1 2维的交叉表

3.2 用2维表现3维的

3.3 上述内容,具体的markdown文本

4 交叉数据表

4.1 交叉数据表并不整洁

4.2 但是交叉表也很有用:比如求 联合概率+边缘概率

4.3 总结

5 整洁数据表,可以直接pd.pivot_table()转化为交叉表

5.1 pd.pivot_table()  数据透视表公式

5.2 表虽然可以直接转,但是内容也需要合适


1 虽然这是个很基础的知识,但是我觉得有必要记录下

有些数据表很有问题,后导致后续的分析出问题,所以先检查和整理数据表是很有必要的一个步骤。

  • #混乱数据
  1. 数据混乱
  2. 有些甚至把一个单元格填多个数据
  3. 有些虽然看着很清晰,但数据结构混乱
  • #整洁数据
  1. 可读性比较强

2 整洁数据表

整洁数据表

这几个要求看起来很简单,但是有时候也容易忽视。

  • 1.每1列代表1个属性
  • 2.每1行代表1个样本(样本里包含多个数据)
  • 3.每一个单元格,代表1个具体数据
  • 4.每个类型的观察单元构成1个表格(不同类型的观察单元多个表格)
     

3 交叉数据表的2种形式

3.0 交叉表的名字

  • 交叉表
  • 交叉分类表
  • 也叫列联表

3.1 2维的交叉表

  • 常见的交叉表
  • 列:属性1 如颜色
  • 行:属性2 如 城市
  • 单元格,具体数据

3.2 用2维表现3维的

  • 实际上还是2维的
  • 因为我们很难真的表现1个3维表格,虽然理论上可以通过 XYZ这样的三维图表示
  • 其实,用2维表现3维的就是,列的属性,实际是2个维度,
  1. 列的维度1:上午,下午
  2. 列的更高维度,颜色

3.3 上述内容,具体的markdown文本

#混乱数据
数据混乱
有些甚至把一个单元格填多个数据
有些虽然看着很清晰,但数据结构混乱#整洁数据
可读性比较强##第1类表格:整洁数据表1.每1列代表1个属性
2.每1行代表1个样本(样本里包含多个数据)
3.每一个单元格,代表1个具体数据
4.每个类型的观察单元构成1个表格(不同类型的观察单元多个表格)序号|城市|颜色|销售量
----|----|----|----
1|北京|红色|98
2|北京|蓝色|90
3|上海|红色|86
4|上海|蓝色|95##第2类表格:数据交叉表二维城市\颜|红色|蓝色
----|----|----
北京|98|90
上海|86|95三维
交叉表|红色| 红色|蓝色| 蓝色
""|上午|下午|上午|下午
----|----|----|----|----
北京|48|50|40|50
上海|46|40|45|40

4 交叉数据表

4.1 交叉数据表并不整洁

  • 从整洁数据的定义上说,交叉数据表“并不整洁”
  • 原因:交叉数据表,往往是列表示一个属性,行也表示了一个属性
  • 行,并不只是一个行样本(多个数据的数组!)

4.2 但是交叉表也很有用:比如求 联合概率+边缘概率

  • 独立概率
  • 联合概率:独立概率1*独立概率2
  • 边缘概率:同1行 /同1列的所有联合概率相加的总和。
  1.  边缘概率分2种:行边缘概率,列边缘概率
  2.  为什么要全部相加?因为同1行/列 代表了所有的可能性,必须全加起来才=边缘概率
  3. (所有行的)Σ边缘概率和=1 = 总概率
  4. (所有列的)Σ边缘概率和=1= 总概率
  • (概率空间的)总概率=1

4.3 总结

  • 我的想法:
  • 整洁数据表:更底层:适合作为原始数据,输入后,进行各种分析
  • 各种上层的表现表形式:
  1. 交叉数据表,本身就是在整洁数据表的一种加工,是一种输出形式!
  2. 其他数据表表现形式

5 整洁数据表,可以直接pd.pivot_table()转化为交叉表

5.1 pd.pivot_table()  数据透视表公式

  •  pd.pivot_table(data=pd.Dataframe, values="单元格列名",aggfunc="sum新生成的求和列",index="横向的列名", columns="纵向的列名")
  • pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

参数说明:

  • 数据源
  • data:需要进行数据透视的DataFrame。pd.Dataframe
  • 数据源重组
  • values:用于聚合的列名,默认聚合所有数值列。"原表--单元格列名",
  • index:数据透视表的index,从原数据的列中筛选。"原表--横向的列名",
  • columns:数据透视表的columns,从原数据的列中筛选。"原表--纵向的列名"
  • 重组关键函数
  • aggfunc:用于聚合的函数,默认为’mean’,支持numpy的聚合函数。也可以是"sum"
  • 其他效果
  • fill_value:用于替换结果中的缺失值。
  • margins:添加行/列小计和总计,默认为False。
  • dropna:是否删除所有条目均为NA的列,默认为True。
  • margins_name:总计列的名称,默认为’All’。

sample_dataframe11=pd.DataFrame({"city":sample_array11,
                                "color":sample_array22,
                                 "sales":sample_array33,
                                })
 

#可以把np.Dataframe 直接转化为 交叉表/列联表
crosstable11=pd.pivot_table(data=sample_dataframe11,

                                                values="sales",

                                                 aggfunc="sum",

                                                 index="city",

                                                columns="color")

5.2 表虽然可以直接转,但是内容也需要合适

  • 把 “整洁数据表”转化为交叉表,虽然可以直接用pd.pivot_table(),但是表本身的内容也需要符合,适合转化为交叉表"
  • 例子1数据表本身不适合转化为交叉表,可以转,转完后格式比较奇怪,没啥意义"
  • 例子2:数据表本身很适合转化为交叉表,可以转,转完后很好"
import numpy as np
import pandas as pd
import scipy as sp
%precision 3print("#把 “整洁数据表”转化为交叉表,虽然可以直接用pd.pivot_table(),但是表本身的内容也需要符合,适合转化为交叉表")
print("#例子1数据表本身不适合转化为交叉表,可以转,转完后格式比较奇怪,没啥意义")sample_array1=np.array([1,2,3])
sample_array2=np.array([10,20,30])
sample_array3=np.array([100,200,300])# 注意pd.DataFrame 首字母一定大写
sample_dataframe1=pd.DataFrame({"city":sample_array1,"color":sample_array2,"sales":sample_array3,})
print(sample_dataframe1)
print()#可以把np.Dataframe 直接转化为 交叉表/列联表
crosstable1=pd.pivot_table(data=sample_dataframe1,values="sales",aggfunc="sum",index="city",columns="color")
print(crosstable1)
print()print("#例子2:数据表本身很适合转化为交叉表,可以转,转完后很好")
sample_array11=np.array(["beijing","beijing","shanghai","shanghai"])
sample_array22=np.array(["blue","red","blue","red"])
sample_array33=np.array([100,150,200,120])# 注意pd.DataFrame 首字母一定大写
sample_dataframe11=pd.DataFrame({"city":sample_array11,"color":sample_array22,"sales":sample_array33,})
print(sample_dataframe11)
print()#可以把np.Dataframe 直接转化为 交叉表/列联表
crosstable11=pd.pivot_table(data=sample_dataframe11,values="sales",aggfunc="sum",index="city",columns="color")
print(crosstable11)
print()

相关文章:

【小白学机器学习35】数据表:整洁数据表,交叉表/列联表,以及两者转化pd.pivot_table()

目录 1 虽然这是个很基础的知识,但是我觉得有必要记录下 2 整洁数据表 3 交叉数据表的2种形式 3.0 交叉表的名字 3.1 2维的交叉表 3.2 用2维表现3维的 3.3 上述内容,具体的markdown文本 4 交叉数据表 4.1 交叉数据表并不整洁 4.2 但是交叉表也…...

springboot旅游管理系统的设计与实现

springboot旅游管理系统的设计与实现 如需源码pc端👉👉👉资源 手机端👉👉👉资源 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于…...

k8s 1.28 聚合层部署信息记录

–requestheader-client-ca-file –requestheader-allowed-namesfront-proxy-client –requestheader-extra-headers-prefixX-Remote-Extra- –requestheader-group-headersX-Remote-Group –requestheader-username-headersX-Remote-User –proxy-client-cert-file –proxy-cl…...

自由学习记录(25)

只要有修改,子表就不用元表的参数了,用自己的参数(只不过和元表里的那个同名) 子表用__index“继承”了父表的值,此时子表仍然是空表 一定是创建这样一个同名的变量在原本空空的子表里, 传参要传具体的变…...

关于函数式接口和编程的解析和案例实战

文章目录 匿名内部类“匿名”在哪里 函数式编程lambda表达式的条件Supplier使用示例 ConsumeracceptandThen使用场景 FunctionalBiFunctionalTriFunctional 匿名内部类 匿名内部类的学习和使用是实现lambda表达式和函数式编程的基础。是想一下,我们在使用接口中的方…...

Linux 僵尸进程和孤儿进程, 进程优先级

僵尸进程 之间在进程状态中了解到了 "僵尸状态". 那么处于僵尸状态的进程就是僵尸进程. 僵尸状态是一种特殊的进程状态, 它表示一个进程已经完成执行, 但其父进程尚未回收其终止状态. "僵尸状态" 的本质就是死亡状态. 如何理解僵尸进程: 举个例子: 一个正…...

爬虫笔记24——纷玩岛自动抢票脚本笔记

纷玩岛自动抢票,协议抢票思路实现 一、获取Authorization凭证二、几个关键的参数三、几个关键的接口获取参数v,这个参数其实可以写死,可忽略通过价位获取演出的参数信息获取观演人信息,账号提前录入即可提交订单接口 先看实现图&a…...

《白帽子讲Web安全》15-16章

《白帽子讲Web安全》15-16章 《白帽子讲Web安全》15章15、Web Server配置安全15.1、Apache安全15.2、Nginx安全15.3、jBoss远程命令执行15.4、Tomcat远程命令执行15.5、HTTP Parameter Pollution15.6、小结 第四篇 互联网公司运营安全《白帽子讲Web安全》16章16、互联网业务安全…...

计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

大语言模型压缩技术;推理优化技术;SparseGPT算法;GPTQ算法

目录 大语言模型落地的成本、效率与效果 模型压缩技术 推理优化技术 SparseGPT算法 GPTQ算法 大语言模型落地的成本、效率与效果 模型压缩技术 模型压缩技术是大语言模型轻量化的关键。介绍了多种模型压缩方法,其中权重量化和模型稀疏化是两种主要的技术。 权重量化:权重…...

Facebook的开源项目解析:推动开发者社区的技术进步

Facebook,作为全球领先的社交平台之一,其在技术领域的创新不仅体现在产品功能的实现上,也积极推动开源社区的发展。开源项目已经成为Facebook技术战略的重要组成部分,通过开源,Facebook不仅加速了技术进步,…...

力扣--LCR 149.彩灯装饰记录I

题目 代码 /** Definition for a binary tree node. public class TreeNode { int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left left;this.right ri…...

Rust SQLx CLI 同步迁移数据库

上文我们介绍了SQLx及SQLite,并介绍了如何使用代码同步迁移数据库。本文介绍Sqlx cli 命令行工具,介绍如何安装、使用,利用其提供的命令实现数据表同步迁移。Java生态中有flyway, sqlx cli 功能类似,利用命令行工具可以和其他语言…...

批量生成不同用户的pdf 文件(html样式)

技术 selenium thymeleaf itextpdf chromedriver 使用thymeleaf 将动态数据替换 使用selenium chromedriver 进行js &#xff0c;css等逻辑运算后渲染视图 使用itextpdf 将html 转为pdf 文件 html模板 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf…...

混淆零碎知识点

minifyEnabled true //混淆开关 zipAlignEnabled true // Zipalign优化 shrinkResources true // 移除无用的resource文件 &#xff08;必须要混淆开了之后才才可以设置为true&#xff09; proguard-rules.pro 为混淆文件 //整个文件保留 不被混淆 -keep class com.cn…...

排序算法2

排序算法1-CSDN博客 排序算法1中提及的是较为基础(暴力实现&#xff0c;复杂度较高)的排序算法&#xff0c;不适合于数据量较大的场景&#xff0c;比如序列长度达到1e5 接下来以蓝桥另一道题目来理解其它的排序算法 蓝桥3226 蓝桥账户中心 样例 5 1 5 9 3 7 4、快速排序 快速排…...

【Web开发基础学习——corsheaders 应用的理解】

Web开发基础学习系列文章目录 第一章 基础知识学习之corsheaders 应用的理解 文章目录 Web开发基础学习系列文章目录前言一、使用1.1 安装1.2 配置 二、功能总结 前言 corsheaders 是一个 Django 第三方应用&#xff0c;用于处理跨域资源共享 (CORS)。CORS 是一种机制&#x…...

Redis和MySQL之间如何进行数据同步

原因 为什么要进行Redis和MySQL的数据同步&#xff1f; 性能优化&#xff1a;MySQL是关系型数据库&#xff0c;数据读取和存储相对复杂&#xff1b;Redis是内存数据库&#xff0c;读写速度极快&#xff0c;将热点数据存在Redis&#xff0c;可以大大提高系统的访问速度。 数据…...

css:转换

转换 移动 /* transform: translate(100px, 200px); */transform: translateX(100px);transform: translateY(100px); /*一个意思*/ 如果后面跟百分数的意思是移动盒子自身x/y方向长度的百分比&#xff0c;可以用作子绝父相控制盒子水平居中垂直居中 translate里的xy值是相对…...

状态管理与存储:Vuex 和 sessionStorage

1. sessionStorage 存储位置 sessionStorage 是浏览器提供的 Web Storage API 的一部分&#xff0c;用于在一个会话期间存储数据。数据保存在浏览器的 内存 中&#xff0c;而不是在硬盘上&#xff0c;且其生命周期仅限于当前浏览器标签页。数据在浏览器窗口或标签页关闭时会被…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...