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

大家好,本文将探讨数据探索性分析的两个基本方面:数据集形状和空值。我们将深入了解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,而有的列具有较多的空值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python慕遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值