【30天玩转python】数据分析与可视化

news/2024/10/21 13:16:19/

数据分析与可视化

数据分析是通过数据提取、整理和分析来发现有用信息的过程,而数据可视化则通过图形和图表的方式,将数据转化为视觉化信息,以便快速理解数据趋势和模式。本篇文章将介绍如何使用 Python 进行数据分析与可视化,重点使用两个常用的库:NumPyPandas 进行数据分析MatplotlibSeaborn 进行数据可视化。


1. 数据分析基础

数据分析的基本步骤包括:

  1. 数据收集:从文件、数据库、API 或网络获取数据。
  2. 数据清洗:处理缺失值、重复值、格式化问题等。
  3. 数据分析:使用统计方法或编程工具分析数据。
  4. 数据可视化:将分析结果以图形或表格的形式展示。

2. 使用 NumPy 进行数值计算

NumPy 是 Python 的数值计算库,主要用于处理数组和矩阵运算。

2.1 安装 NumPy

可以使用以下命令安装 NumPy

pip install numpy
2.2 NumPy 基本用法

示例:创建数组

python">import numpy as np# 创建一维数组
arr = np.array([1, 2, 3, 4, 5])# 创建二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])print("一维数组:", arr)
print("二维数组:", arr_2d)

示例:数组运算

python"># 数组加法
arr_sum = arr + 10# 数组元素求和
arr_total = np.sum(arr)print("数组加法:", arr_sum)
print("数组元素总和:", arr_total)

3. 使用 Pandas 进行数据处理

Pandas 是 Python 最强大的数据分析库之一,它提供了高效的数据结构如 DataFrame,用于处理结构化数据。

3.1 安装 Pandas

可以使用以下命令安装 Pandas

pip install pandas
3.2 Pandas 基本用法

示例:创建 DataFrame

python">import pandas as pd# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [24, 27, 22, 32],'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']}df = pd.DataFrame(data)print(df)

输出:

      Name  Age         City
0    Alice   24     New York
1      Bob   27  Los Angeles
2  Charlie   22      Chicago
3    David   32      Houston
3.3 数据读取与处理

Pandas 可以从多种格式中读取数据,如 CSV、Excel、SQL 数据库等。

示例:读取 CSV 文件

python"># 读取 CSV 文件
df = pd.read_csv('data.csv')# 查看前 5 行
print(df.head())

示例:数据清洗

python"># 删除包含缺失值的行
df = df.dropna()# 填充缺失值
df['Age'].fillna(df['Age'].mean(), inplace=True)# 删除重复行
df = df.drop_duplicates()

4. 数据可视化

数据可视化可以帮助我们快速识别数据中的模式、趋势和异常。常用的 Python 可视化库包括 MatplotlibSeaborn

4.1 安装 Matplotlib 和 Seaborn
pip install matplotlib seaborn
4.2 使用 Matplotlib 进行可视化

Matplotlib 是 Python 最基础的可视化库,支持创建多种图表。

示例:绘制折线图

python">import matplotlib.pyplot as plt# 数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 40, 30]# 绘制折线图
plt.plot(x, y)
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.title('折线图示例')
plt.show()
4.3 使用 Seaborn 进行高级可视化

Seaborn 是基于 Matplotlib 的高级可视化库,能够轻松创建美观的统计图表。

示例:绘制柱状图

python">import seaborn as sns# 示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [24, 27, 22, 32]}df = pd.DataFrame(data)# 绘制柱状图
sns.barplot(x='Name', y='Age', data=df)
plt.title('柱状图示例')
plt.show()

示例:绘制散点图

python"># 加载自带数据集
df = sns.load_dataset('iris')# 绘制散点图
sns.scatterplot(x='sepal_length', y='sepal_width', data=df)
plt.title('鸢尾花数据集散点图')
plt.show()

5. 综合示例:数据分析与可视化

让我们结合 PandasMatplotlibSeaborn,进行一个实际的数据分析和可视化任务。

任务:分析和可视化某城市的气温变化趋势

步骤:

  1. 读取数据文件。
  2. 计算每月的平均气温。
  3. 绘制折线图展示气温变化趋势。

示例代码:

python">import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns# 读取 CSV 数据
df = pd.read_csv('temperature_data.csv')# 计算每月的平均气温
df['Date'] = pd.to_datetime(df['Date'])
df['Month'] = df['Date'].dt.month
monthly_avg_temp = df.groupby('Month')['Temperature'].mean().reset_index()# 绘制折线图
plt.plot(monthly_avg_temp['Month'], monthly_avg_temp['Temperature'])
plt.xlabel('月份')
plt.ylabel('平均气温 (°C)')
plt.title('某城市月平均气温变化趋势')
plt.show()# 使用 Seaborn 绘制带有数据点的折线图
sns.lineplot(x='Month', y='Temperature', data=monthly_avg_temp, marker='o')
plt.title('某城市月平均气温变化趋势 (带数据点)')
plt.show()

6. 小结

数据分析与可视化是数据科学中的关键步骤。通过使用 NumPyPandas 等库,我们可以方便地处理和分析数据;使用 MatplotlibSeaborn 等工具,我们能够将分析结果以直观的图表形式展示出来。掌握这些工具和技巧,可以极大地提升数据分析的效率和质量。


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

相关文章

在 CentOS 安装 Python3.7 (没有弯路)

下载Python源码包 wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz安装前准备 安装依赖组件 yum -y install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel xz-devel解压安装 解…

梦幻西游端游如何查看挂机进度,GameViewer远程随时手机畅玩梦幻西游

原来用手机就可以免费玩梦幻西游端游?还可以随时查看游戏进度!如果你喜欢玩梦幻西游端游,有总觉得出门在外不方面携带电脑,要想用手机实现随时随地查看梦幻西游的挂机进度,可以用网易GameViewer远程这款专为游戏玩家设…

JavaScript Map全解:从基础到高级应用

在JavaScript中,Map是一种内置的数据结构,用于存储键值对。与普通的对象(Object)相比,Map提供了更多的灵活性和功能。本文将全面介绍Map的基础用法、特性、高级应用以及与普通对象的区别,帮助你更好地理解和…

Java项目实战II基于Java+Spring Boot+MySQL的购物推荐网站的设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 随着互联网技术的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。然而&#xf…

【qt】QQ仿真项目1

一览全局: QQ仿真项目 一.创建项目添加资源文件二.创建数据库三.自定义标题栏Qt类四.加载样式表标题栏按钮的搭配五.标题栏实现移动窗体六.标题栏按钮连接信号槽七.标题栏双击最大化和还原八.基类窗口实现标题栏按钮信号九.重写基类窗口绘图事件确保设置样式表生效十.用户登录界…

【2023工业3D异常检测文献】PointCore: 基于局部-全局特征的高效无监督点云异常检测器

PointCore: Efficient Unsupervised Point Cloud Anomaly Detector Using Local-Global Features 1、Background 当前的点云异常检测器可以分为两类: (1)基于重建的方法,通过自动编码器重建输入点云数据,并通过比较原…

【Java基础】Java面试基础知识QA(上)

Java面试基础知识Q&A(上) 面向对象编程( OOP) Java 是一个支持并发、基于类和面向对象的计算机编程语言。面向对象软件开发的优点: 代码开发模块化,更易维护和修改。代码复用。增强代码的可靠性和灵活性…

聚势启新 智向未来 | 重庆华阳通用科技有限公司揭牌成立

助推两江新区汽车产业高质量发展 (以下文字内容转载自两江新区网) 9月26日,重庆华阳通用科技有限公司(华阳通用重庆子公司)在两江新区揭牌成立,将致力于智能座舱、智能驾驶两大领域,不断加大技术研发投入…