Python入门系列之九-数据分析与可视化

news2025/1/7 3:53:10

活着的力量不是来自于叫喊,也不是来自于进攻,而是忍受,去忍受生命赋予我们的责任,去忍受现实给予我们的幸福和苦难、无聊和平庸


在现代数据分析中,Python已经成为了最流行的编程语言之一。它拥有丰富的数据分析工具,其中最重要的两个库是PandasMatplotlib。Pandas主要用于数据处理与清洗,而Matplotlib则用于数据的可视化。本文将介绍如何使用这些工具进行数据分析,重点涵盖数据清洗与预处理,并通过一个示例项目展示如何用这些工具进行数据分析。

1. 使用Pandas处理数据

1.1. Pandas概述

Pandas是一个强大的数据分析库,提供了高效的数据结构和数据操作工具,特别适合用于处理表格数据。Pandas主要有两种数据结构:

  • Series:一维数组,类似于列表,索引和数据类型非常灵活。
  • DataFrame:二维数据表格,可以理解为一个包含行和列的数据集,类似于Excel中的表格。
1.2. 安装Pandas

如果你还没有安装Pandas,可以通过以下命令安装:

pip install pandas
1.3. 数据的导入与读取

Pandas支持多种文件格式的读取,包括CSV、Excel、SQL、JSON等。我们常用的方式是读取CSV文件,下面是如何用Pandas读取CSV文件的示例:

import pandas as pd

# 读取CSV文件
df = pd.read_csv('data.csv')

# 查看前5行数据
print(df.head())
1.4. 数据操作

Pandas提供了强大的数据操作功能。常见的操作有:

  • 选择列:通过列名选择数据。

    df['Column_Name']  # 选择某一列
    
  • 选择行:通过lociloc来选择行。

    df.loc[0]  # 选择第一行(通过标签)
    df.iloc[0]  # 选择第一行(通过索引)
    
  • 筛选数据:可以通过条件筛选数据。

    df[df['Column_Name'] > 10]  # 筛选某列大于10的数据
    
  • 基本统计:Pandas提供了常见的统计操作。

    df.describe()  # 获取数据的描述性统计
    df['Column_Name'].mean()  # 计算某列的均值
    

2. 数据清洗与预处理

数据清洗与预处理是数据分析过程中至关重要的一步。数据往往包含缺失值、异常值或格式不统一等问题,这些问题需要通过清洗与预处理来解决。

2.1. 处理缺失值

数据集中的缺失值需要进行处理,否则在分析时可能会导致错误或不准确的结果。Pandas提供了多种处理缺失值的方法:

  • 检查缺失值

    df.isnull().sum()  # 查看每一列的缺失值数量
    
  • 填充缺失值

    df['Column_Name'].fillna(0)  # 用0填充缺失值
    df['Column_Name'].fillna(df['Column_Name'].mean())  # 用均值填充
    
  • 删除缺失值

    df.dropna()  # 删除包含缺失值的行
    df.dropna(axis=1)  # 删除包含缺失值的列
    
2.2. 数据类型转换

有时候,数据中的某些列可能被误认为字符串类型,我们需要将其转换为适当的数据类型。

df['Column_Name'] = df['Column_Name'].astype('float')  # 将列转换为浮动类型
2.3. 处理重复数据

数据集中的重复数据会影响分析结果,需要进行去重操作。

df.drop_duplicates()  # 删除重复行
2.4. 数据标准化与归一化

在某些情况下,数据的量纲不同,需要对数据进行标准化或归一化。常见的标准化方法有Z-score标准化和Min-Max归一化。

# Z-score标准化
df['Column_Name'] = (df['Column_Name'] - df['Column_Name'].mean()) / df['Column_Name'].std()

# Min-Max归一化
df['Column_Name'] = (df['Column_Name'] - df['Column_Name'].min()) / (df['Column_Name'].max() - df['Column_Name'].min())

3. 使用Matplotlib绘制基本图表

数据分析的结果需要通过可视化呈现。Matplotlib是Python中最常用的绘图库,它可以绘制多种类型的图表。

3.1. 安装Matplotlib

如果你还没有安装Matplotlib,可以通过以下命令安装:

pip install matplotlib
3.2. 绘制基本图表

Matplotlib支持绘制折线图、柱状图、散点图等。下面是如何使用Matplotlib绘制一些常见图表的示例。

  • 折线图

    import matplotlib.pyplot as plt
    
    # 假设我们有一个数据集
    x = [1, 2, 3, 4, 5]
    y = [1, 4, 9, 16, 25]
    
    # 绘制折线图
    plt.plot(x, y)
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('Line Plot')
    plt.show()
    
  • 柱状图

    # 假设我们有一组分类数据
    categories = ['A', 'B', 'C', 'D']
    values = [3, 7, 2, 5]
    
    # 绘制柱状图
    plt.bar(categories, values)
    plt.xlabel('Categories')
    plt.ylabel('Values')
    plt.title('Bar Chart')
    plt.show()
    
  • 散点图

    # 假设我们有一组点数据
    x = [1, 2, 3, 4, 5]
    y = [5, 4, 3, 2, 1]
    
    # 绘制散点图
    plt.scatter(x, y)
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('Scatter Plot')
    plt.show()
    
3.3. 数据可视化项目示例

假设我们有一个包含销售数据的CSV文件,数据包含以下列:

  • Date: 销售日期
  • Product: 产品名称
  • Sales: 销售额

我们可以进行数据清洗、预处理并进行可视化分析。以下是一个简单的示例项目。

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv('sales_data.csv')

# 查看数据结构
print(df.head())

# 数据清洗:处理缺失值
df['Sales'].fillna(0, inplace=True)

# 将日期列转换为日期时间格式
df['Date'] = pd.to_datetime(df['Date'])

# 按日期聚合销售额
daily_sales = df.groupby('Date')['Sales'].sum()

# 绘制折线图,展示每日销售额
plt.plot(daily_sales.index, daily_sales.values)
plt.xlabel('Date')
plt.ylabel('Sales')
plt.title('Daily Sales')
plt.xticks(rotation=45)
plt.show()

4. 数据分析项目总结

  • 数据清洗:是数据分析的第一步,包含了缺失值处理、数据类型转换、重复值去除等。
  • 数据预处理:包括数据归一化、标准化等操作,确保数据可以用于建模。
  • 数据可视化:通过Matplotlib等工具展示分析结果,帮助从数据中提取有价值的洞察。

结语

数据清洗与预处理是数据分析过程中至关重要的一步,而Pandas和Matplotlib则是帮助我们处理和可视化数据的强大工具。通过掌握这些基础工具和技能,你能够从原始数据中提取有用的信息,并通过可视化呈现出来。数据分析不仅仅是处理数据,更是发现趋势、洞察问题并做出决策的重要途径。在进行数据分析时,合理的工具和方法可以帮助你更高效地解决问题。

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

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

相关文章

【WPF】 数据绑定机制之INotifyPropertyChanged

INotifyPropertyChanged 是 WPF 中的一个接口,用于实现 数据绑定 中的 属性更改通知。它的主要作用是,当对象的某个属性值发生更改时,通知绑定到该属性的 UI 控件更新其显示内容。 以下是有关 INotifyPropertyChanged 的详细信息和实现方法&…

基于Spring Boot的IT技术交流和分享平台的设计与实现源码

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的IT技术交流和分享平台的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于S…

齿轮缺陷检测数据集VOC+YOLO格式485张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):485 标注数量(xml文件个数):485 标注数量(txt文件个数):485 标注…

Airflow:HttpSensor实现API驱动数据流程

数据管道工作流通常依赖于api来访问、获取和处理来自外部系统的数据。为了处理这些场景,Apache Airflow提供了HttpSensor,这是一个内置的Sensor,用于监视HTTP请求的状态,并在满足指定条件时触发后续任务。在这篇博文中&#xff0c…

活动预告 | Microsoft Power Platform 在线技术公开课:实现业务流程自动化

课程介绍 参加“Microsoft Power Platform 在线技术公开课:实现业务流程自动化”活动,了解如何更高效地开展业务。参加我们举办的本次免费培训活动,了解如何借助 Microsoft AI Builder 和 Power Automate 优化工作流。结合使用这些工具可以帮…

【SpringBoot教程】搭建SpringBoot项目之编写pom.xml

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 👏今天毛毛张分享的内容主要是Maven 中 pom 文件🆕,涵盖基本概念、标签属性、配置等内容 文章目录 1.前言🥭2.项目基本…

职场常用Excel基础04-二维表转换

大家好,今天和大家一起分享一下excel的二维表转换相关内容~ 在Excel中,二维表(也称为矩阵或表格)是一种组织数据的方式,其中数据按照行和列的格式进行排列。然而,在实际的数据分析过程中,我们常…

ASA第六天笔记

Botnet Traffic Filter简介 1.僵死网络流量过滤特性是一个基于名誉的机制,用于阻止流量源自于或者去往已知的感染主机。 2.僵死网络流量过滤比较每一个连接中的源和目的IP地址。 动态SensorBase数据库,被Cisco动态更新。静态数据库,需要手动…

【ArcGISPro/GeoScenePro】检查多光谱影像的属性并优化其外观

数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 操作 其他数据 检查影像的属性 熟悉检查您正在使用的栅格属性非常重要。

MySQL图形化界面工具--DataGrip

之前介绍了在命令行进行操作,但是不够直观,本次介绍图形化界面工具–DataGrip。 安装DataGrip 官网链接:官网下载链接 常规的软件安装流程。 参考链接:DataGrip安装 使用DataGrip 添加数据源: 第一次使用最下面会…

企业微信——智能表格学习

智能表格 应用限制条件 获取 token https://developer.work.weixin.qq.com/document/10013#%E5%BC%80%E5%8F%91%E6%AD%A5%E9%AA%A4 开发步骤 你可以通过以下步骤,使用access_token来访问企业微信的接口。需要注意的是,所有的接口需使用Https协议、Js…

调试:用电脑开发移动端网页,然后用手机真机调试

一、背景 电脑开发移动端,然后想真机调试... 二、实现 2.1、电脑和手机链接相同局域网 2.2、pnpm run dev 启动项目 2.3、浏览器访问 localhost:3001/login 2.4、Windowsr 输入cmd,在cmd输入 ipconfig 2.5、浏览器访问 ip地址加/login 2.6、手机端…

华为ensp-BGP路由过滤

学习新思想,争做新青年,今天学习的是BGP路由过滤 实验目的: 掌握利用BGP路由属性AS_Path进行路由过滤的方法 掌握利用BGP路由属性Community进行路由过滤的方法 掌握利用BGP路由属性Next_Hop进行路由过滤的方法 实验内容: 本实…

【书籍连载】《软件测试架构实践与精准测试》| 有关软件测试模型的调查结果

各位软件领域的精英们,今天小编邀请你继续深入学习《软件测试架构实践与精准测试》。 《软件测试架构实践与精准测试》是作者李龙(安畅检测首席技术专家)基于软件测试“川模型”的著作。本书结合作者首次提出的软件测试新的模型“川模型”测试…

nginx学习之路-windows系统安装nginx

文章目录 1. 下载2. 启动3. 验证参考文档 1. 下载 官方下载地址:https://nginx.org/en/download.html 可以下载windows版本,如nginx-1.26.2.zip。解压后,加入系统变量。 2. 启动 可以使用命令行启动(windows系统自带的cmd可能…

word中编号统一格式

不要手敲编号,要利用工具来。要善于利用多级编号和编号,分别对标题和段落进行组织 尤其是段落和标题特别多的时候,像毕设、标书这些 为什么呢?因为这样更方便修改,后续的增加和删除段落,编号会自动排列&am…

MQ-导读

什么是MQ? MQ是一款消息中间件,通常被称为"消息队列",用于分布式架构中上下文的异步通信, 由三个角色组成: 1. 消息提供者:发送消息的人 2. 消息接收者:接收、处理消息的人 3. 消息代理者&#x…

深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(四)

慢查询日志,顾名思义,就是查询慢的日志,是指mysql记录所有执行超过long_query_time(默认的时间10秒)参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是…

MySQL数据库笔记——版本号机制和CAS(Compare And Swap)

大家好,这里是Good Note,关注 公主号:Goodnote,本文详细介绍乐观锁的两种实现方式:版本号机制和CAS(Compare And Swap)。 文章目录 MySQL 内置的并发控制机制MVCC(多版本并发控制&am…

使用 commitlint 和 husky 检查提交描述是否符合规范要求

在上一小节中,我们了解了 Git hooks 的概念,那么接下来我们就使用 Git hooks 来去校验我们的提交信息。 要完成这么个目标,那么我们需要使用两个工具: 注意:npm 需要在 7.x 以上版本。 1. commitlint 用于检查提交信…