数据分析-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如何控制数据分类处理呢?需要配置哪些参数?

分类数据的比较

有三种情况,可以将分类数据与其他对象进行比较:

  • 与列表类的比较相等,例如相同长度的类似列表的对象(如列表、序列、数组…)。
  • 分类数据之间的比较,它们对应数值是否相同,比较操作包括==``!=``>``>=``<``<=
  • 分类数据的所有数值与标量的比较。

所有其他的比较,尤其是两个类别的“不相等”比较,具有不同的 类别或具有任何类似列表的对象的分类将引发 错误.TypeError

In [112]: cat = pd.Series([1, 2, 3]).astype(CategoricalDtype([3, 2, 1], ordered=True))
In [113]: cat_base = pd.Series([2, 2, 2]).astype(CategoricalDtype([3, 2, 1], ordered=True))
In [114]: cat_base2 = pd.Series([2, 2, 2]).astype(CategoricalDtype(ordered=True))

In [115]: cat
Out[115]: 
0    1
1    2
2    3
dtype: category
Categories (3, int64): [3 < 2 < 1]

In [116]: cat_base
Out[116]: 
0    2
1    2
2    2
dtype: category
Categories (3, int64): [3 < 2 < 1]

In [117]: cat_base2
Out[117]: 
0    2
1    2
2    2
dtype: category
Categories (1, int64): [2]

具有相同类别和顺序特性的分类比较,或与标量进行比较:

In [118]: cat > cat_base
Out[118]: 
0     True
1    False
2    False
dtype: bool

In [119]: cat > 2
Out[119]: 
0     True
1    False
2    False
dtype: bool

与类似列表对象的相等比较,适用于任何具有相同长度的类似列表对象,和标量的比较:

In [120]: cat == cat_base
Out[120]: 
0    False
1     True
2    False
dtype: bool

In [121]: cat == np.array([1, 2, 3])
Out[121]: 
0    True
1    True
2    True
dtype: bool

In [122]: cat == 2
Out[122]: 
0    False
1     True
2    False
dtype: bool

当类别不相同时,比较就会报错:

In [123]: try:
   .....:     cat > cat_base2
   .....: except TypeError as e:
   .....:     print("TypeError:", str(e))
   .....: 
TypeError: Categoricals can only be compared if 'categories' are the same.

但是,如果要做不相等的比较,比如分类数据与类似列表的对象进行“不相等”比较,就需要显式转换为原始数据再做比较。:

In [124]: base = np.array([1, 2, 3])

In [125]: try:
   .....:     cat > base
   .....: except TypeError as e:
   .....:     print("TypeError:", str(e))
   .....: 
TypeError: Cannot compare a Categorical for op __gt__ with type <class 'numpy.ndarray'>.
If you want to compare values, use 'np.asarray(cat) <op> other'.

In [126]: np.asarray(cat) > base
Out[126]: array([False, False, False])

当比较具有相同类别的两个无序分类时,不考虑顺序:

In [127]: c1 = pd.Categorical(["a", "b"], categories=["a", "b"], ordered=False)
In [128]: c2 = pd.Categorical(["a", "b"], categories=["b", "a"], ordered=False)

In [129]: c1 == c2
Out[129]: array([ True,  True])

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

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

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

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博客

相关推荐

  1. 数据分析-Pandas分类数据比较如何

    2024-03-25 05:20:01       21 阅读
  2. 数据分析-Pandas如何处理表格中文本数据

    2024-03-25 05:20:01       39 阅读
  3. 数据分析-Pandas如何选择数据子集

    2024-03-25 05:20:01       40 阅读
  4. 数据分析-Pandas如何统计数据概况

    2024-03-25 05:20:01       34 阅读
  5. 数据分析-Pandas数据分类转换控制

    2024-03-25 05:20:01       23 阅读
  6. 数据分析-Pandas分类数据类别处理

    2024-03-25 05:20:01       17 阅读
  7. 数据分析-Pandas分类数据get和set

    2024-03-25 05:20:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 05:20:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 05:20:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 05:20:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 05:20:01       20 阅读

热门阅读

  1. 在Flink SQL中使用watermark进阶功能

    2024-03-25 05:20:01       21 阅读
  2. 使用docker搭建dockge

    2024-03-25 05:20:01       20 阅读
  3. 自学python指导教程

    2024-03-25 05:20:01       18 阅读
  4. Nodejs版本管理工具nvm

    2024-03-25 05:20:01       23 阅读
  5. Chinese-LLaMA-Alpaca-2模型量化部署&测试

    2024-03-25 05:20:01       22 阅读
  6. 【Python】复习12:标准库与第三方库

    2024-03-25 05:20:01       20 阅读
  7. Postgresql中常见的执行计划解释

    2024-03-25 05:20:01       22 阅读
  8. vue3模板引用介绍

    2024-03-25 05:20:01       21 阅读
  9. 数据结构面试常见问题

    2024-03-25 05:20:01       19 阅读
  10. Day 30回溯06

    2024-03-25 05:20:01       22 阅读
  11. flink的MaxOutOfOrderness 和 Allowedlateness 区别

    2024-03-25 05:20:01       20 阅读
  12. 【Swift】如何让实例对象像函数一样使用

    2024-03-25 05:20:01       22 阅读