数据分析Pandas专栏---第一章<数据清洗>

news/2025/3/14 17:57:19/

前言:

当我们使用爬虫从网上收集到大量的数据时,经常会面临一个重要任务:对这些数据进行清洗和整理,以便进一步分析和利用。在Python中,pandas是一个功能强大且广泛使用的数据处理库,它提供了各种灵活而高效的工具,可以方便地进行数据清洗和转换。本篇文章将重点介绍如何使用pandas进行数据清洗的过程和常用技巧。

正文:

1. 数据导入与查看

在开始之前,我们首先需要将爬取到的数据导入到pandas中。

pandas支持多种数据格式的导入,包括常见的CSV、Excel、JSON等格式。使用pandas的read_csv()read_excel()read_json()等方法可以轻松将数据加载到DataFrame对象中。

一旦数据导入完成,我们可以使用head()tail()sample()等方法来查看数据集的前几行、后几行或随机行,以了解数据的整体情况。

2. 数据清洗与处理

2.1 处理缺失值:

很多时候,爬虫所获取的数据中会存在缺失值,这会对数据分析和建模造成影响。pandas提供了多种方法来处理缺失值,比如使用isnull()notnull()方法来检测缺失值,使用dropna()方法删除含有缺失值的行或列,使用fillna()方法填充缺失值等。根据具体的场景和数据特点,我们可以选择合适的方法来处理缺失值。

2.2 处理重复值:

重复值是另一个需要处理的常见问题。使用pandas的duplicated()方法可以检测出数据集中的重复值,而使用drop_duplicates()方法可以删除重复值。通过清除重复值,我们可以保证数据的准确性和一致性。

2.3 数据类型转换:

有时,爬虫获取的数据可能包含错误的数据类型,例如将日期列识别为字符串,或者将数字列识别为对象。在这种情况下,我们可以使用astype()方法将列转换为正确的数据类型,从而提高数据的可用性。

2.4 数据筛选与修改:

在数据清洗过程中,我们经常需要根据特定的条件对数据进行筛选和修改。pandas提供了强大的索引和筛选功能,可以使用逻辑运算符来过滤和选择感兴趣的数据。使用loc[]iloc[]方法可以根据标签或位置来选择数据,而使用条件表达式可以实现更精确的数据筛选和修改。

3. 数据保存与导出

在数据清洗完成后,我们可以使用pandas的to_csv()to_excel()to_json()方法将清洗后的数据保存到不同的文件格式中。这样一来,我们就可以将清洗后的数据用于后续的数据分析、可视化和建模工作。

4. 案例

为了更好地理解如何使用pandas进行数据清洗,演示对一个包含缺失值重复值的数据集进行清洗的过程:

import pandas as pd# 导入数据集
df = pd.read_csv('data.csv')# 查看数据前五行
print(df.head())# 处理缺失值
df = df.dropna()  # 删除包含缺失值的行
df = df.fillna(0)  # 将缺失值填充为0# 处理重复值
df = df.drop_duplicates()# 数据类型转换
df['date'] = pd.to_datetime(df['date'])# 数据筛选与修改
df = df[df['value'] > 0]  # 仅保留值大于0的数据
df['category'] = df['category'].str.upper()  # 将category列转换为大写# 保存清洗后的数据
df.to_csv('cleaned_data.csv', index=False)


http://www.ppmy.cn/news/1357459.html

相关文章

nginx-ingress-controller组件中Nginx的版本升级

参考链接:https://blog.csdn.net/qq_22824481/article/details/133761302 https://blog.csdn.net/mengfanshaoxia/article/details/127155020 https://blog.csdn.net/weixin_39961559/article/details/87935873 概要 业务区k…

《Solidity 简易速速上手小册》第8章:高级 Solidity 概念(2024 最新版)

文章目录 8.1 高级数据类型和结构8.1.1 基础知识解析更深入的理解实际操作技巧 8.1.2 重点案例:构建一个去中心化身份系统案例 Demo:创建去中心化身份系统案例代码DecentralizedIdentityContract.sol 测试和验证拓展案例 8.1.3 拓展案例 1:管…

【HarmonyOS应用开发】三方库(二十)

三方库的基本使用 一、如何获取三方库 目前提供了两种途径获取开源三方库: 通过访问Gitee网站开源社区获取 在Gitee中,搜索OpenHarmony-TPC仓库,在tpc_resource中对三方库进行了资源汇总,可以供开发者参考。 通过OpenHarmony三…

政安晨:【示例演绎机器学习】(一)—— 剖析神经网络:学习核心的Keras API

打开这篇文章,相信您已经了解了TensorFlow的一些基础知识,可以用它从头开始实现一个简单模型。 如果您对这些概念还不是太清晰,可以浏览一下我这个栏目中的相关文章: 政安晨的机器学习笔记http://t.csdnimg.cn/DHcyL 尤其是其中…

Linux的Shell编程

Linux的Shell编程 Shell 是什么 Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。 Shell 脚本的执行方式 脚本以#!/bin/bash 开头脚本需要…

QT基础【6-跨界面发送信号】

🌈个人主页:godspeed_lucip 🔥 系列专栏:QT从基础到进阶 1 跨界面发送信号1.1 例子1.2 界面效果1.3 总体思路1.4 添加一个新界面1.5 自定义信号1.6 槽函数1.7 详细代码 2 总结 1 跨界面发送信号 1.1 例子 目标实现这样的功能&am…

Unity创建脚本等待很久的解决方法

创建脚本时出现 EditorApplication.update: Unity,PlasticsCM,Editor,WI.EditorDispatcher.Update Waiting for Unitys code in Unity,PlasticsCM,Editordl to finish executing. 这是因为在创建项目时勾选了版本管理 在目前的学习状态这个没用什么用,取消勾选即可…

【git】提交信息写错了,使用 amend 或者 reset 修改最近一次的提交信息 ,修改上上次/以前的提交信息

如果你的提交信息写错了,比如下面,你想修改【初始化项目】这5个字 修改最近一次的提交新的两个办法 (1)使用 reset 把这个提交重置,然后重新提交,reset 的使用方法请参考这篇文章。但是 reset 这种方法只能…