数据分析-Pandas数据分类的转换控制

数据分析-Pandas数据分类的转换控制

数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律?

数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据,以及巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2数据作为样例。

数据分析

数据分析-Pandas如何转换产生新列

数据分析-Pandas如何统计数据概况

数据分析-Pandas如何轻松处理时间序列数据

数据分析-Pandas如何选择数据子集

数据分析-Pandas如何重塑数据表-CSDN博客

本文用到的样例数据:

Titanic数据

空气质量监测 N O 2 NO_2 NO2数据

样例代码:

源代码参考 Pandas如何重塑数据表

源代码参考 python数据分析-数据表读写到pandas

导入关键模块

import pandas as pd
import numpy as np

实验数据分析处理,股票序列,时间序列,信号序列,有时候表格的数据并不完全是数值类型,也有可能是字符串,或者其他数据,需要做分类处理。pandas如何控制数据分类处理呢?需要配置哪些参数?

下面对 pandas 分类数据类型做个简单的介绍。

分类数据

Categoricals 是 pandas 的一种数据类型,对应统计分类变量。通常,统计分类变量是有限的、固定的、 可能数值。例如,性别, 社会阶层,血型,颜色,种类,评价,评级等等。

与统计分类变量相比,分类数据还可能有一个顺序(例如 “非常同意”与“同意”,“第一次观察”与“第二次观察”),但不能进行算术计算,比如,加减乘除。

所有的数据,要么在分类数据中,要么不在。分类数据如果有顺序,那么是按定义的值进行排序,而不是按照词法顺序,比如字母顺序,数字顺序。实际上在内部,其数据结构是由一个真正数值的数组和一个整数数组构成,整数数组指向真正值的数组。 哈哈,有点绕。

分类的作用

categorical 数据类型在以下情况下很有用:

  • 仅由几个不同值组成的字符串变量。字符串变量转换为分类变量可节省一些内存。
  • 变量的逻辑顺序和词法顺序不同,通过转换为分类并指定类别的顺序,这样可以使用逻辑顺序进行排序, min/max 操作。
  • 提示 Python 库,表明此列应被视为分类变量操作(例如,使用合适的统计方法或绘图类型)。

分类转换的控制

在前面分类数据的生成示例中,使用dtype='category'默认的配置:

  1. 类别是从数据中推断出来的;
  2. 类别是无序的;

如果要控制,改变类型的配置,可以使用 ``CategoricalDtype` 函数,主要参数是类别参数 categories,是否有序 ordered。

In [26]: from pandas.api.types import CategoricalDtypeIn [27]: s = pd.Series(["a", "b", "c", "a"])
In [28]: cat_type = CategoricalDtype(categories=["b", "c", "d"], ordered=True)
In [29]: s_cat = s.astype(cat_type)
In [30]: s_catOut[30]: 
0    NaN
1      b
2      c
3    NaN
dtype: category
Categories (3, object): ['b' < 'c' < 'd']

同样,当在DataFrame中使用时,原本所有列之间的类别可能不一致的问题,就可以用CategoricalDtype解决。

In [31]: from pandas.api.types import CategoricalDtypeIn [32]: df = pd.DataFrame({"A": list("abca"), "B": list("bccd")})
In [33]: cat_type = CategoricalDtype(categories=list("abcd"), ordered=True)
In [34]: df_cat = df.astype(cat_type)
In [35]: df_cat["A"]Out[35]: 
0    a
1    b
2    c
3    a
Name: A, dtype: category
Categories (4, object): ['a' < 'b' < 'c' < 'd']In [36]: df_cat["B"]Out[36]: 
0    b
1    c
2    c
3    d
Name: B, dtype: category
Categories (4, object): ['a' < 'b' < 'c' < 'd']

如果已知分布,也可以使用from_codes()函数构造,比如以下是正态函数构造模式:

In [37]: splitter = np.random.choice([0, 1], 5, p=[0.5, 0.5])In [38]: s = pd.Series(pd.Categorical.from_codes(splitter, categories=["train", "test"]))

分类类型的复原

如果要返回到原始数组,或 NumPy 数组,请使用:Series.astype(original_dtype) 或者np.asarray(categorical)

In [39]: s = pd.Series(["a", "b", "c", "a"])
In [41]: s2 = s.astype("category")
In [42]: s2Out[42]: 
0    a
1    b
2    c
3    a
dtype: category
Categories (3, object): ['a', 'b', 'c']In [43]: s2.astype(str)
Out[43]: 
0    a
1    b
2    c
3    a
dtype: objectIn [44]: np.asarray(s2)
Out[44]: array(['a', 'b', 'c', 'a'], dtype=object)

以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。

后面介绍下其他的展示形式。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

GPT专栏文章:

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

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

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

相关文章

vue的URL和函数优化

URL优化 async…await 用于同步接收网络请求的结果 常规的代码 export async function articleGetAllService () {//发送异步请求&#xff0c;获取所有文章数据//同步等待服务器响应的结果&#xff0c;并返回&#xff0c;async,awaitreturn await axios.get(http://localhost:…

【 Vue.js 属性 | 生命周期 】

computed计算属性 规则&#xff1a; 1.用已有的属性计算不存在的属性 2.默认调用一次get() 3.简写时注意&#xff1a; 只有值不发生改变才可以是用简写&#xff08;函数&#xff09;&#xff0c;值发生改变必须使用对象&#xff0c;才可以配置set()方法 4.底层原理使用 Object.…

shell脚本入门练习(非常详细)零基础入门到精通,收藏这一篇就够了

【脚本1】打印形状 打印等腰三角形、直角三角形、倒直角三角形、菱形 #!/bin/bash \# 等腰三角形 read \-p "Please input the length: " n for i in \seq 1 $n\ do for ((j\$n;j>i;j--)) do echo \-n " " done for m in \seq 1 $i\ do…

淘宝1688京东...商品详情数据采集,按关键词搜索商品列表

淘宝、1688、京东等电商平台的商品详情数据采集以及按关键词搜索商品列表&#xff0c;通常可以通过以下几种方法实现&#xff1a; 请求示例&#xff0c;API接口接入Anzexi58 一、使用API接口 这些电商平台通常都提供开放API接口&#xff0c;允许开发者调用接口获取所需的数据…

【Linux】网络编程套接字一

网络编程套接字一 1.预备知识1.1理解源IP地址和目的IP地址1.2认识端口号1.3认识TCP协议1.4认识UDP协议1.5网络字节序 2.socket编程接口3.UDP网络程序3.1UDP Server服务器端3.2UDP Client客户端 4.根据UDP客户端服务端做的设计4.1字典热加载4.2shell命令行4.3聊天室 5.windows客…

WSL下Ubuntu+RTX4090安装CUDA+cuDnn+Pytorch

安装驱动 首先需要明确的是&#xff0c;在WSL下安装Ubuntu&#xff0c;如果要使用主机的GPU卡&#xff0c;只需要在主机Windows上安装驱动&#xff0c;Linux中不需要安装驱动&#xff0c;可以在Linux中使用nvidia-smi命令查看驱动版本。 安装CUDA 避坑注意事项&#xff1a;如…

网络原理(6)——IP协议

目录 一、网段划分 现在的网络划分&#xff1a; 1、一般情况下的家庭网络环境 2、IP地址 3、子网掩码 4、网关 以前的网络划分&#xff1a; 二、特殊IP 1、环回 IP 2、主机号为全 0 的IP 3、广播地址IP 三、路由选择&#xff08;路线规划&#xff09; 一、网段划分…

毕业论文降重(gpt+完美降重指令),sci论文降重gpt指令——超级好用,重复率低于4%

1. 降重方法&#xff1a;gpt降重指令 2. gpt网站 https://yiyan.baidu.com/ https://chat.openai.com/ 3. 降重指令——非常好用&#xff01;&#xff01;sci论文&#xff0c;本硕大论文都可使用&#xff01; 请帮我把下面句子重新组织&#xff0c;通过调整句子逻辑&#xff0…

通过命令在Windows入站出站放行上放行端口8090, 8443, 5222, 8021

可以通过循环结构来简化操作&#xff0c;下面分别创建入站和出站规则的示例&#xff1a; 入站规则 $ports 8090, 8443, 5222, 8021foreach ($port in $ports) {New-NetFirewallRule -DisplayName "Allow Inbound Port $($port)" -Direction Inbound -Action Allow…

day6:STM32MP157——串口通信实验

使用的是cortex A7内核 【串口通信的工作原理】 本次实验使用的是uart4的串口&#xff0c;分别使用了uart4_tx和uart4_rx两个引脚。根据板子的原理图我们可以知道&#xff0c;他们分别对应着芯片的PG11和PB2 从引脚名字也可以知道使用了GPIO口&#xff0c;所以本次实验同样需…

array go 语言的数组 /切片

内存地址通过& package mainimport "fmt"func main() {var arr [2][3]int16fmt.Println(arr)fmt.Printf("arr的地址是: %p \n", &arr)fmt.Printf("arr[0]的地址是 %p \n", &arr[0])fmt.Printf("arr[0][0]的地址是 %p \n"…

动态规划Dynamic Programming

上篇文章我们简单入门了动态规划&#xff08;一般都是简单的上楼梯&#xff0c;分析数据等问题&#xff09;点我跳转&#xff0c;今天给大家带来的是路径问题&#xff0c;相对于上一篇在一维中摸爬滚打&#xff0c;这次就要上升到二维解决问题&#xff0c;但都用的是动态规划思…

手机termux上用hydra在线暴力穷举破解

HYDRA 是一个在线暴力破解工具&#xff0c;速度快&#xff0c;穷举稳定&#xff0c;支持50线程的暴力穷举破解&#xff0c;兼容的协议也多&#xff0c;telnet, ftp, http, https, smb, 多数网页服务的databases&#xff0c;应用广泛。 在手机termux上也可以轻松实现。 不废话…

开源博客项目Blog .NET Core源码学习(10:App.Framwork项目结构分析)

开源博客项目Blog的解决方案总共包括4个项目&#xff0c;其中App.Hosting项目包括所有的页面及控制器类&#xff0c;其它项目主要提供数据库访问、基础类型定义等。这四个项目的依赖关系如下图所示&#xff0c;本文主要分析App.Framwork项目的主要结构及主要文件的用途。   …

150 Linux C++ 通讯架构实战6 服务器程序目录规划,通过vs2017实现文件夹的创建,makefile编写

从无到有产生这套 通讯架构源代码【项目/工程】 一&#xff0c;服务器程序目录规划 一个完整的项目 肯定会有多个源文件&#xff0c;头文件&#xff0c;会分别存放到多个目录&#xff1b; 我们这里要规划项目的目录结构&#xff1b; 注意&#xff1a;不固安是目录还是文件&am…

水瓶座性格分析及星座配对!

水瓶座性格分析及星座配对&#xff01; 标签&#xff1a;水瓶座 水&#xff0f;瓶&#xff0f;座 1.20~2.18 “珍爱生命&#xff0c;远离水瓶” 这是一个被水瓶座折磨的巨蟹文艺男青年的呐喊 “都是外星人&#xff0c;根本没法沟通” 这是号称水瓶最佳基友的逆生长射手妹子…

21.同步模式-保护性暂停

1.Guarded Suspension,用在一个线程等待另一个线程的执行结果。 2.一个结果从一个线程传递到另一个线程&#xff0c;让他们关联同一个GuardedObject 保护对象。 3.如果有结果不断从一个线程到另一个线程&#xff0c;那么可以使用消息队列。 4.join方法和Future的实现&#x…

JavaScript原型、原型对象、原型链系列详解(三)

(三)、JavaScript原型链 原型链 在 JavaScript 中&#xff0c;对象之间的继承是通过原型链来实现的。每个对象都有一个指向原型对象的内部链接&#xff0c;也就是 [[Prototype]] 属性。这个链接的作用是如果对象本身没有某个属性或方法&#xff0c;就会去它的原型对象上找&…

Linux 进程通信:匿名管道、实现进程池

目录 一、进程间通信 1、 为什么需要进程通信 2、发展和分类 二、管道 1、概念 2、特点 2、复制并共享 3、用fork来共享管道原理 4、站在文件描述符角度-深度理解管道 5、站在内核角度-管道本质 三、匿名管道 1、概念 2、创建 3、snprintf 4、父子进程中进行单…

小程序英文口语发音评测

一、英文口语评测需求 在全球化的今天&#xff0c;英语已经成为了世界上最重要的国际语言之一。无论是在国际商务、科技研究、教育还是日常生活中&#xff0c;英语都扮演着举足轻重的角色。因此&#xff0c;掌握英文口语的能力对于个人的职业发展、学术研究以及跨文化交流都具…