使用Pandas简化数据探索性分析

news2024/11/26 2:55:39

大家好,本文将探讨数据探索性分析的两个基本方面:数据集形状和空值。我们将深入了解Pandas如何简化这些任务,重点关注需要同时分析多个表格的情况。使用的库是pandastabulate

数据集形状 

要检索单个表格的形状,可以使用.shape属性。例如,如果有一个名为df的DataFrame,我们可以使用df.shape访问其形状,这将返回一个包含DataFrame行数和列数的元组。

了解数据集的形状是很有价值的,因为它可以帮助我们理解其大小和结构。通过了解行的数量,可以估计正在处理的数据量,而列的数量则揭示了可用于分析的变量或特征。对形状信息的解读使我们能够对数据转换、内存需求和分析潜在限制做出明智的决策。

现在,我们将通过实际的示例来解释和利用真实世界场景中的形状信息。按照以下步骤进行:

  • 导入Pandas:首先导入Pandas库,这是在Python中进行数据操作和分析的强大工具:

import pandas as pd
  • 读取表格:从Olist数据集中读取相关的表格,该数据集提供了巴西电子商务数据的数据集,这些表格代表了业务的不同方面,包括客户、订单、产品和评论。
customer = pd.read_csv('olist_customers_dataset.csv')
geolocation = pd.read_csv('olist_geolocation_dataset.csv')
order_items = pd.read_csv('olist_order_items_dataset.csv')
order_payments = pd.read_csv('olist_order_payments_dataset.csv')
order_reviews = pd.read_csv('olist_order_reviews_dataset.csv')
orders = pd.read_csv('olist_orders_dataset.csv')
products = pd.read_csv('olist_products_dataset.csv')
sellers = pd.read_csv('olist_sellers_dataset.csv')
  • 将表格保存到字典中:将导入的表格存储在字典中。这种方法可以方便地管理和同时访问多个表格,便于跨数据集进行分析。

tables= {
"customer":customer,
"geolocation": geolocation,
"order_items":order_items,
"order_payments":order_payments,
"order_reviews":order_reviews,
"orders":orders,
"products":products,
"sellers":sellers
}
  • 遍历表格:使用循环遍历字典并读取每个表格的形状。这提供了Olist数据集中每个表格的行数和列数:

for k,v in tabelas.items():
    print(f'{k}:{v.shape}')

 只需两行代码,就可以输出所有的形状。

处理多个表格中的空值

识别和处理空值是数据分析中的一项关键任务,因为缺失的数据可能会影响结果的准确性和可靠性。识别具有空值的列的最简单方法是结合使用.isna().sum()方法:

orders.isna().sum()

 通过将每列中空值的总和除以表格中的记录总数,并将其乘以100,可以计算出空值的百分比,这样就能了解每列中缺失数据的情况。分析空值的百分可使我们能够优先处理具有更高缺失值比例的列,从而提高数据分析的准确性和有效性。

orders.isna().sum()/len(orders) * 100

经过分析发现空值最多的列,即订单表约有3%的空值,现在对多个表格执行相同的分析操作。使用以下代码能够在分析中识别并显示任何数据集的空值:

from tabulate import tabulate

for k, v in tables.items():
    # 用列名创建一个列表
    cols = v.columns.tolist()
    # 创建一个列表,列出每一列的空值的百分比
    null_values = [v[col].isna().sum() / len(v) * 100 for col in cols]
    # 用列名和空值创建一个列表
    formatted_table = [[col, null_value] for col, null_value in zip(cols, null_values)]
    # 输出格式化的表格
    print(f"\nNull values in table {k.upper()}:\n")
    print(tabulate(formatted_table, headers=["Column", "Percentage of Null Values"], tablefmt="grid"))
    print('\n')

 对于每个数据集,可以看到有的列的空值比例为0,而有的列具有较多的空值。

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

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

相关文章

「小摹AI」赋能原型设计 开放内测申请

「小摹AI」智能原型助手发布啦! 4大AI应用能力:智能原型|智能文本|智能翻译|智能填充 释放原型设计的无限潜能 摹客AI - 让设计更具创造力http://www.mockplus.cn/ai/?hmsrwencsdnAI 智能原型 催生创新,开启原型设计新境界 根据描述&…

equals与Hashcde的区别

1、equals与hashCode的区别 equals与hashcode这两个方法都是从Object类中继承过来的。 hashCode():计算出对象实例的哈希地址,并且返回该地址,称哈希函数,又称散列表。 equals():反映的是对象的内存地址或者对象的内…

uniapp canvas 生成海报 小程序码 二维码

uniapp canvas 生成超简单海报带小程序码 canvas官网链接&#xff0c;可以先看下官方介绍&#xff0c;更好理解 uniapp官网canvas介绍 一、首先自定义一个生成海报的组件 uni-xcxcanvas.vue&#xff0c;创建同名目录 模板文件代码&#xff1a; <template><view&…

AtcoderABC251场

A - Six CharactersA - Six Characters 题目大意 给定一个由小写英文字母组成的字符串S&#xff0c;S的长度在1到3之间。 打印一个长度为6的字符串&#xff0c;该字符串是S的重复。 思路分析 通过将S重复拼接6次&#xff08;如果给定原字符串最小的情况&#xff09;&#xf…

【LLM】利用RoPE不微调大模型以扩展Context长度(更新中)

note 文章目录 note一、扩展LLM的Context长度1. 常见方法2. PCW方法 二、NBCE方法三、RoPE方法四、FlashAttention方法Reference 一、扩展LLM的Context长度 1. 常见方法 扩展LLM的Context长度其实已有不少&#xff0c;但多数是通过结合检索或者摘要的方式来缩短样本的长Conte…

深入学习 Redis - 常用数据类型,结构认识

目录 一、Redis数据类型 Redis 数据类型结构简单认识 每个数据类型具体的编码方式 1.string 2.hash 3.list 4.set 5.zset 典中典&#xff1a;记数字&#xff01;&#xff01;&#xff01; 6.查看 key 对应 value 的实际编码方式 如果本文有帮助到你&#xff0c;不…

古风编曲用什么软件?水果编曲FL Studio21怎么样

古风编曲需要什么乐器&#xff1f;古风编曲多采用笙、箫、二胡、古筝、琵琶、唢呐、二胡、竹笛、马头琴等中国传统乐器。古风编曲用什么软件&#xff1f;市面上几款热门软件有FL Studio、Cubase、Logic Pro等。 古风编曲需要什么乐器 我们常说的古风歌曲&#xff0c;其实是一…

CocoaPods could not find compatible versions for pod ““:

添加新的 SDK 依赖抛出了如下异常,无法找到可兼容的版本依赖库; [!] CocoaPods could not find compatible versions for pod "HDSSup":In Podfile:HDSSupSpecs satisfying the HDSSup dependency were found, but they required a higher minimum deployment targe…

使用这些ai绘画生成器,再也不愁没有好看的壁纸了

你们最近有没有发现网上开始流行ai绘画&#xff1f;我总是能看到ai绘画出来的图片&#xff0c;犹如下面这些图片。 这些图片是不是好看到&#xff0c;可以作为头像使用了&#xff1f;它们确实是ai绘画出来的&#xff0c;不过现在ai绘画软件众多&#xff0c;你们知道哪一款好用吗…

nvm node yarn

nvm node 以及node 对应的版本的npm相关配置的整理 ##如何设置npm 全局node_modules 安装目录 你可以通过 npm 的配置来设置全局安装的 node_modules 目录。默认情况下&#xff0c;npm 全局安装的包会存储在操作系统的特定目录中&#xff0c;如在 Windows 上为 C:\Users\<…

MySQL日常操作记录

1.查看MySQL版本 select version();2.快速复制表结构&#xff0c;不包含相关主键及约束 create table user_test as select * from user where 12;3.uuid select uuid(),uuid_short();4.替换uuid()里的’-‘为’’ select replace(uuid(),-,);5.md5摘要 select md5(uuid()…

SCT52240双路 4A/4A 高速MOSFET/IGBT栅极驱动器, 可并联输出

SCT52240是是一款宽供电电压、双通道、高速、低测栅极驱动器&#xff0c;包括功率MOSFET&#xff0c;IGBT。单个通道能够提供高达4A拉电流和4A灌电流的轨到轨驱动能力&#xff0c;并实现轨到轨输出。高达24V宽电压范围提高功率器件开关瞬间栅极驱动的振铃幅值裕度。13ns输入输出…

Spring源码学习-核心注解,架构以及整体流程

目录 核心注解核心组件接口分析基础接口ResourceResourceLoaderResourceResourceLoader BeanFactory结构解析图示核心的子接口 BeanDefinition加载注册流程(xml形式的) BeanDefinitionReaderBeanDefinitionRegistryApplicationContext类结构图示结构解析 Aware接口类图xxAware是…

后端Long类型传到前端精度丢失的问题

问题出现&#xff1a;后端的Java Bean的id属性是用的Long类型对应数据库主键使用bigint类型&#xff0c;当使用JSON方式传递该数据给前端时&#xff0c;前端接收到的数据末尾会变成0。&#xff08;发生的精度丢失问题&#xff09; 问题原因&#xff1a;Java中的long能表示的范围…

域名下配置,dns TXT记录,防止任意邮件伪造

每日鸡汤&#xff1a;每个你想要学习的瞬间都是未来的你向自己求救 最近在做一个网页的项目&#xff0c;这个项目和之前的项目的区别是部署在海外的服务器上&#xff0c;为了方便国外的用户访问&#xff0c;所以在埋点统计这块我们就选择了谷歌统计。国内的项目一般使用百度统计…

管道泄漏监测系统:天然气管道泄漏监测

随着我国城市化进程的快速推进&#xff0c;城市燃气管网也不断扩张&#xff0c;规模日益庞大&#xff0c;地下管线错综复杂&#xff0c;城市燃气管网的建设和运营面临着越来越多的挑战。然而&#xff0c;很多城市在建设过程中过于注重地上设施&#xff0c;对地下管网的科学管控…

ORCA优化器浅析——​MD Accessor的三级缓存

分析​MD Accessor对元数据的缓存能力 set client_min_messageslog; set optimizer to on; set optimizer_print_optimization_stats to on; --执行SQLoptimizer_print_optimization_stats GUC会打印处ORCA优化器优化流程中的各步骤的统计数据。分析打印日志如下&#xff0c;由…

[分布式] Ceph实战应用

目录 一、建 CephFS 文件系统 MDS 接口服务端操作客户端操作 二、创建 Ceph 块存储系统 RBD 接口创建 Ceph 对象存储系统 RGW 接口OSD 故障模拟与恢复 一、建 CephFS 文件系统 MDS 接口 服务端操作 1&#xff09;在管理节点创建 mds 服务 cd /etc/ceph ceph-deploy mds creat…

流程图实现,基于vue2实现的流程图

1.基本思路 flex布局 伪元素实现竖直的连接线组件递归 2.效果图 2.1基础的&#xff08;未截全&#xff0c;大致长这样&#xff09; 2.2带有收缩功能的&#xff0c;可以展开和收缩并显示数量 3.待需要优化的点&#xff0c;根节点居中是基于整个流程图大小的来居中的&#xf…

【Spring Boot】Spring Boot的系统配置 — 实战:实现系统多环境配置

实战&#xff1a;实现系统多环境配置 在实际项目开发的过程中&#xff0c;需要面对不同的运行环境&#xff0c;比如开发环境、测试环境、生产环境等&#xff0c;每个运行环境的数据库、Redis服务器等配置都不相同&#xff0c;每次发布测试、更新生产都需要手动修改相关系统配置…