python数据分析一课一得

前言

数据分析概述

Python数据分析是指使用Python编程语言及其相关的库和工具来处理、清洗、分析、可视化和解释数据的过程。Python由于其易于学习、语法简洁、功能强大且拥有庞大的社区支持,已成为数据分析和数据科学领域的首选语言之一。

以下是Python数据分析的一些主要特点和相关工具:

1. 数据处理和清洗
Pandas:Pandas是Python中用于数据处理和分析的核心库。它提供了DataFrame这一强大的数据结构,使得数据清洗、转换、筛选等操作变得简单而直观。
2. 数据可视化
Matplotlib:Matplotlib是Python中最基础的绘图库,提供了各种静态、动态、交互式的可视化图表。
Seaborn:Seaborn是一个基于Matplotlib的数据可视化库,提供了更高层次的数据可视化接口,适合制作各种统计图形。
Plotly:Plotly是一个开源的交互式图形库,支持在线和离线绘图,并提供了丰富的图表类型。
3. 数据探索和统计
NumPy:NumPy是Python的一个基本数值计算库,提供了高性能的多维数组对象、以及用于数组操作的各种函数。
SciPy:SciPy是一个基于NumPy的开源Python库,用于数学、科学和工程计算。它提供了许多用于统计、优化、线性代数、积分等方面的函数。
4. 机器学习
scikit-learn:scikit-learn是一个用于机器学习的Python库,提供了各种分类、回归、聚类、降维等算法的实现。
TensorFlow 和 PyTorch:这两个库主要用于深度学习,提供了构建和训练神经网络所需的工具和函数。
5. 数据存储和读取
CSV、Excel:Pandas库提供了读取和写入CSV、Excel文件的功能。
SQL:通过sqlite3模块或第三方库如psycopg2(PostgreSQL)、pymysql(MySQL)等,Python可以连接和操作数据库。
HDF5、Parquet:对于大型数据集,可以使用HDF5或Parquet等高效的文件格式进行存储和读取。
6. 数据分析和报告
Jupyter Notebook:Jupyter Notebook是一个开源的Web应用程序,允许你创建和共享包含实时代码、方程、可视化和解释性文本的文档。它是数据科学家和数据分析师进行数据分析、可视化和报告编写的强大工具。
7. 数据API和Web抓取
Requests:Requests是一个用于发送HTTP请求的Python库,常用于从Web API获取数据。
BeautifulSoup:BeautifulSoup是一个用于从HTML和XML文件中提取数据的Python库,常用于Web抓取和数据抓取。
Python数据分析的广泛应用使得它成为数据科学家、数据分析师、研究人员和开发者们不可或缺的工具之一。

学习过程

环境配置的安装

Anaconda的安装

一、安装包下载
官网下载地址:官网
在这里插入图片描述
2)镜像地址:镜像,找到想要的版本以及适合的系统即可
在这里插入图片描述

vscode的安装

VSCode官网
打开浏览器,访问VSCode的官方网站:官网
在这里插入图片描述
安装完成后汉化VSCode便于咱们的编写

Python数据分析依赖的两个对象

Python数据分析主要依赖两个核心对象:Series序列对象和DataFrame表格对象。这两个对象都是Pandas库中的重要组成部分,为数据分析提供了强大的工具和功能。

Series序列对象:
Series是Pandas库中的一个一维标记数组,可以存储任何数据类型,包括整数、字符串、浮点数等。
它拥有丰富的属性和方法,使得数据处理变得灵活高效。
DataFrame表格对象:
DataFrame是一个二维的、大小可变的、可以存储具有不同类型数据的表格。
它提供了复杂的数据操作能力,包括数据清洗、预处理、分组等高级数据操作。
DataFrame的组成部分包括行索引、列索引以及数据区域,这使得数据检索和管理变得简单直观。

打开我们刚刚安装好的vscode,创建并打开一个文件夹进行我们的编写

导入外部数据

import pandas as pd
df=pd.read_csv('../pyket/dataset/衣服尺码数据.csv',encoding='gbk')
df

注意
这里的衣服尺码数据.csv文件是演示文件可更改为您所需要编写的数据文件
在这里插入图片描述

Series序列对象

基本特点

一维标签化数据结构:Series可以存储任何数据类型(数值、字符串、布尔值等),并且每个数据点都有一个与之关联的标签(索引)。
索引自动生成:当创建Series对象时,如果没有指定索引,Pandas会自动为数据点生成从0开始的整数索引。
存储灵活性:Series能够存储不同类型的数据,这使得它在处理多类型数据时非常灵活。

Series序列对象的创建

可以使用Pandas库中的Series()函数来创建Series对象。例如:

import pandas as pd  
  
# 创建一个包含整数1到5的Series对象  
s = pd.Series([1, 2, 3, 4, 5])  
print(s)  

在这里插入图片描述

Series序列对象的常用属性和方法

常用属性:
values:返回Series中的数据(以NumPy数组形式)。
index:返回Series的索引。
dtype:返回Series中数据的数据类型。
size:返回Series中元素的数量。
ndim:返回Series的维度(始终为1)。
shape:返回Series的形状(以元组形式,如(5,))。
常用方法:
astype():将Series中的数据转换为指定类型。
value_counts():统计Series中各元素出现的次数。
sort_values():对Series中的元素进行排序。
round():调整Series中元素的小数点位数。
str.contains():查询Series中各元素是否包含某个字符串(仅适用于字符串类型数据)。
str.replace():替换Series中所有元素中的某个字符串(仅适用于字符串类型数据)。
agg():对Series中的元素进行统一加工,如求和、平均值等。

DataFrame表格对象

DataFrame是Pandas库中的一个核心数据结构,它提供了一种二维的、大小可变且可以包含异构类型列的表格型数据结构。DataFrame在处理和分析数据时表现出了极高的灵活性和效率,是Python数据分析中不可或缺的工具。

DataFrame的基本特点

二维表格型数据结构:DataFrame可以看作是由一系列行和列组成的表格,类似于Excel表格或SQL表。
异构类型列:DataFrame的每一列都可以是不同的数据类型(如整数、浮点数、字符串、布尔值等),这使得它能够存储复杂的数据集。
行索引和列索引:DataFrame既有行索引也有列索引,可以方便地通过标签对数据进行选择和操作。
丰富的数据操作能力:DataFrame提供了大量用于数据清洗、预处理、分组、聚合等操作的方法和函数。

DataFrame的创建

DataFrame可以通过多种方式创建,如从列表、字典、NumPy数组等数据源中创建。下面是一些示例:

从列表创建:

import pandas as pd  
data = {'Name': ['Tom', 'John', 'Alice'], 'Age': [25, 30, 28]}  
df = pd.DataFrame(data)

从字典创建(字典的键为列名,值为列表或数组):

data = {'Name': ['Tom', 'John', 'Alice'], 'Age': [25, 30, 28]}  
df = pd.DataFrame(data)

从NumPy数组创建:

import numpy as np  
data = np.array([['Tom', 25], ['John', 30], ['Alice', 28]])  
df = pd.DataFrame(data, columns=['Name', 'Age'])

在这里插入图片描述

DataFrame的常用属性和方法

常用属性:
shape:返回DataFrame的形状,即(行数,列数)的元组。
dtypes:返回DataFrame中每一列的数据类型。
index:返回DataFrame的行索引。
columns:返回DataFrame的列名。
values:返回DataFrame中的数据(以NumPy数组形式)。
常用方法:
head():返回DataFrame的前几行(默认为5行)。
tail():返回DataFrame的后几行(默认为5行)。
info():打印DataFrame的简要摘要,包括行数、列数、每列的数据类型和非空值的数量。
describe():生成描述性统计信息,只针对数值列。
loc[]:基于标签选择数据。
iloc[]:基于整数位置选择数据。
drop():删除指定的行或列。
merge():合并两个DataFrame。
groupby():对数据进行分组。
pivot_table():创建数据透视表。

DataFrame的集成功能

除了基本的数据操作能力外,DataFrame还支持与其他库(如Matplotlib、Seaborn等)的集成,方便进行数据的可视化分析。例如,通过DataFrame可以直接绘制各种图表,如折线图、柱状图、散点图等。

表格对象实现统计分析

表格对象,特别是在数据分析的上下文中,通常指的是用于存储、操作和分析数据的结构化表示。在Python中,Pandas库提供了一个核心的数据结构——DataFrame,它就是一个典型的表格对象,支持丰富的统计分析功能。

表格对象的增删查改

1. 增加(增)
在Pandas DataFrame中:使用append()方法可以向DataFrame中添加新的行。例如,可以通过将新的数据行作为字典或Series对象传递给append()方法来实现。
在HTML表格中:在JavaScript中,可以使用insertRow()方法向HTML表格的指定位置插入新行。这需要指定插入行的索引位置(从0开始)。

import pandas as pd  
  
# 创建一个简单的DataFrame  
df = pd.DataFrame({  
    'Name': ['Alice', 'Bob', 'Charlie'],  
    'Age': [25, 30, 35]  
})  
  
# 创建一个新的数据行  
new_row = {'Name': 'David', 'Age': 40}  
  
# 使用append方法添加新行  
df = df.append(new_row, ignore_index=True)  # ignore_index=True 使得新的行索引从0开始  
print("After appending:")  
print(df)

2. 删除(删)
在Pandas DataFrame中:可以使用drop()方法删除指定的行或列。例如,可以通过指定行或列的标签来删除它们。另外,还可以使用dropna()方法删除包含缺失值的行或列。
在HTML表格中:在JavaScript中,可以使用deleteRow()方法删除HTML表格中的指定行。这需要提供要删除行的索引。

# 删除指定行(例如删除索引为2的行)  
df = df.drop(2)  # 注意这里的索引是基于当前DataFrame的索引  
  
# 删除指定列(例如删除'Age'列)  
df = df.drop('Age', axis=1)  # axis=1 表示按列操作  
print("After dropping row and column:")  
print(df)

3. 修改(改)
在Pandas DataFrame中:修改DataFrame中的数据非常简单,只需直接对特定位置的元素进行赋值即可。例如,可以使用loc[]或iloc[]索引器来选择要修改的元素,并为其分配新值。
在HTML表格中:在JavaScript中,可以通过修改HTML表格单元格(或元素)的innerHTML属性来修改其内容。

# 修改指定位置的值(例如修改索引为0,列名为'Name'的值为'Eve')  
df.at[0, 'Name'] = 'Eve'  
  
# 或者使用loc修改(更通用的方法)  
df.loc[0, 'Name'] = 'Eve'  
  
print("After modifying a value:")  
print(df)

4. 查询(查)
在Pandas DataFrame中:查询DataFrame中的数据可以通过多种方式进行。最常用的是使用loc[]和iloc[]索引器,它们分别基于标签和整数位置来选择数据。此外,还可以使用布尔索引、条件过滤和查询函数(如query())来筛选数据。
在HTML表格中:在JavaScript中,可以通过遍历HTML表格的行和列来查询数据。例如,可以使用循环遍历表格的所有单元格,并检查它们的值或属性。

# 查询满足条件的行(例如查询年龄大于30的行)  
filtered_df = df[df['Age'] > 30]  
  
# 使用query方法查询(更直观的方法)  
filtered_df_query = df.query('Age > 30')  
  
print("After filtering rows with Age > 30:")  
print(filtered_df)  
print("Same result using query:")  
print(filtered_df_query)

在这里插入图片描述

分组统计分析概念

分组统计分析是一种数据处理和分析方法,它基于数据的某个或多个特征将数据集划分为不同的组或类别,然后对每个组进行单独的统计和分析。这种方法在数据科学、市场调研、商业分析等领域中广泛应用,旨在揭示数据内部的结构、分布和趋势,从而为决策提供支持。

在进行分组统计分析时,首先需要确定分组的依据,这通常基于数据的某个或多个特征。例如,在分析一个电商平台的销售数据时,可以按照产品类型、地区、用户群体等特征进行分组。一旦确定了分组依据,就可以将数据集中的每个数据点分配到相应的组中。

接下来,对每个组进行统计计算,以获取该组的特征信息。常用的统计指标包括均值、中位数、众数、方差、标准差等,这些指标能够反映组内数据的集中趋势、离散程度和分布情况。通过比较不同组的统计指标,可以发现各组之间的差异和联系,从而揭示数据内部的规律和趋势。

分组统计分析的结果通常以图表的形式展示,如柱状图、折线图、饼图等。这些图表能够直观地展示各组数据的数量、比例和变化趋势,帮助人们更好地理解数据和分析结果。

总之,分组统计分析是一种强大的数据分析工具,它能够帮助我们揭示数据内部的规律和趋势,为决策提供支持。在实际应用中,我们应该根据具体的业务需求和数据分析目的来选择合适的分组依据和统计指标,以获得更有价值的分析结果。

时间类型数据处理概念

在数据科学和统计分析中,时间类型数据的处理是一项至关重要的任务。时间类型数据,通常指的是包含日期、时间或时间戳等时间元素的数据集。这类数据广泛存在于金融、气象、医疗、电子商务等多个领域,对于理解数据的动态变化、预测未来趋势以及制定决策具有重要意义。

一、时间类型数据的特点

连续性:时间类型数据按照时间顺序排列,具有连续性,相邻数据点之间通常存在某种相关性。
周期性:许多时间类型数据呈现出周期性变化,如季节性的气温变化、股票市场的周期性波动等。
趋势性:长期内,时间类型数据可能呈现出上升、下降或平稳的趋势。
非平稳性:时间类型数据的统计特征(如均值、方差)可能随时间发生变化,表现出非平稳性。

二、时间类型数据的处理步骤

数据清洗:处理缺失值、异常值以及时间格式不统一等问题,确保数据的准确性和一致性。
缺失值处理:可以采用删除法、插值法、基于模型的填充法等方法进行处理。
异常值处理:识别并处理数据中的异常值,以避免对分析结果产生干扰。
时间格式统一:将不同来源的时间数据转换为统一的格式,以便后续分析。
数据转换:将时间类型数据转换为适合分析的形式。
字符串转时间:使用函数(如pd.to_datetime)将字符串格式的时间数据转换为时间类型数据。
时间内部信息提取:从时间类型数据中提取出年份、月份、日期、小时、分钟等详细信息。
数据分析
描述统计分析:计算时间类型数据的均值、中位数、方差等统计量,以了解数据的整体分布和特征。
结构分析:分析时间类型数据中的趋势、季节性等特征,以便更好地理解数据的动态变化。
预测分析:利用时间序列预测方法(如移动平均、指数移动平均、ARIMA等)对时间类型数据进行预测分析,以预测未来的变化趋势。
数据可视化:使用图表(如折线图、柱状图、热力图等)将时间类型数据的分析结果以直观的形式展示出来,便于理解和沟通。

三、总结

时间类型数据的处理是数据分析和数据挖掘中的重要环节。通过对时间类型数据进行清洗、转换、分析和可视化等操作,我们可以更好地理解数据的动态变化、揭示数据中的规律和趋势,并为决策提供支持。在实际应用中,我们应根据具体业务需求和数据特点选择合适的数据处理方法,以获得更有价值的分析结果。

#加粗样式## 数据预处理

数据合并

数据合并是数据处理过程中的一个重要环节,它指的是将来自不同数据源或数据表的信息汇总和整合成一个单一的数据集,以便进行更深入的分析或用于决策制定。以下是关于数据合并的一些核心知识点:
数据合并的意义:
通过数据合并,可以获得更全面、准确的数据视图,有助于组织更好地理解其数据。
合并后的数据可以揭示关联性和趋势,支持业务决策,并帮助解决问题。
数据合并的方法:
纵向合并:主要用于合并相同变量的数据,例如,将两个包含学生化学成绩的数据文件合并成一个。
数据表的关联操作:如SQL中的JOIN操作或Pandas库中的merge方法,它们基于数据表共同的列标签进行合并。
数据合并的步骤:
确定需要合并的数据源和数据表。
确保数据类型和结构的一致性,例如,确保合并的数据具有相同的数据类型(如日期、数字、文本)和数据结构(相同的列名和列顺序)。
处理重复数据和缺失数据,可以选择保留、删除或填充这些数据。
执行合并操作,并验证合并结果是否符合预期,例如,通过检查数据的总行数、总列数以及相关统计指标。
数据合并的注意事项:
合并过程中可能会遇到数据冲突、数据安全问题以及需要额外的数据清洗和存储空间等挑战。
在合并前需要对数据进行充分的了解和准备,以确保合并的准确性和有效性。
数据合并的应用场景:
数据仓库建设:在构建数据仓库时,需要将不同来源的数据合并到一个一致的数据结构中。
业务报告与分析:为了提供更全面的业务视图,需要将不同部门或不同时间段的数据进行合并分析。
机器学习与预测:通过合并更多相关数据,可以为机器学习和预测模型提供更多特征和信息。

数据清洗

数据清洗是数据分析和处理中不可或缺的一步,其目的是纠正数据中的错误,删除重复信息,并提供数据一致性。这一过程对于确保后续分析的准确性和可靠性具有重要意义。

数据清洗的定义与重要性

数据清洗是指发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。
清洗后的数据能够显著提高数据质量,从而帮助分析师和科学家做出更准确的预测和决策。
数据清洗的主要方法

丢弃部分数据:当数据缺失严重或数据质量不高时,可以选择直接删除有问题的行或列。
数据填充:对于缺失值,可以采用均值、中位数、众数或基于其他变量的预测值进行填充。
数据转换:将数据转换为更适合分析的形式,如标准化、归一化等。
数据清洗的流程

数据收集与初步分析:明确数据来源,并进行初步的数据质量分析。
定义清洗规则:根据数据中存在的问题,定制相应的清洗策略。
清洗验证与调整:在实际清洗前进行小样本测试,确保清洗规则的有效性。
执行清洗:按照定义的规则对数据进行批量处理。
清洗结果验证:对清洗后的数据进行质量检查,确保满足分析需求。
数据清洗的挑战与对策

挑战:数据清洗可能面临数据量大、数据类型多样、错误模式复杂等挑战。
对策:采用自动化工具、制定详细的清洗计划、定期更新清洗规则等策略来应对这些挑战。
数据清洗的应用领域

数据清洗广泛应用于金融、医疗、电商等各个行业,是数据分析和数据挖掘前的重要准备工作。

数据转换

数据转换的重要性
在数据分析、机器学习和其他数据驱动的应用中,数据转换是不可或缺的步骤。原始数据可能包含多种类型的信息,如文本、数字、日期等,而不同的分析工具和算法可能要求特定的数据格式和结构。通过数据转换,我们可以将数据转换为更易于处理、更易于理解的形式,从而提高分析效率和准确性。

数据转换的类型
数据标准化:将数据按比例缩放,使其具有零均值和单位方差。这有助于消除不同特征之间的尺度差异,使得算法能够更公平地评估每个特征的重要性。
数据归一化:将数据缩放到特定的范围(如0到1),常用于图像处理等场景。归一化可以确保所有特征在数值上具有相同的权重,减少某些特征对结果的过度影响。
离散化:将连续型变量转换为分类变量,也称为分箱或分段。离散化有助于减少数据的复杂性,并可能提高某些算法的性能。
文本向量化:将文本数据转换为数值型向量,以便在机器学习算法中使用。这通常通过词袋模型、TF-IDF、Word2Vec等方法实现。
日期/时间转换:将日期和时间数据转换为有意义的数值表示,如年份、月份、季度、星期几等。这有助于捕捉时间相关的趋势和周期性模式。
特征提取:从原始数据中提取有意义的特征,如图像的纹理、形状或对象的属性。特征提取可以减少数据的维度,同时保留最重要的信息。

数据转换的步骤
理解数据:首先,需要深入了解数据的来源、结构、类型和分布等基本情况。这有助于确定需要进行哪些类型的数据转换。
选择转换方法:根据分析需求和数据的特性,选择适当的数据转换方法。可能需要结合多种转换方法以达到最佳效果。
执行转换:使用编程工具或数据处理软件执行选定的数据转换操作。这可能需要编写代码或使用图形界面进行操作。
验证转换结果:检查转换后的数据是否符合预期,并验证其准确性和完整性。可以使用统计测试、可视化等方法进行验证。
调整和优化:根据验证结果调整转换方法或参数,以优化转换效果。这可能需要反复迭代和测试以达到最佳性能。

Matplotlib数据可视化

在数据分析和科学计算中,数据可视化是一种直观展示数据特征、规律和趋势的重要手段。Python中的Matplotlib库就是这样一个功能强大、灵活且易于使用的数据可视化工具。本文旨在介绍Matplotlib库的基本概念、常用功能以及如何使用它进行数据可视化。

Matplotlib概述

Matplotlib是一个Python的2D绘图库,它提供了丰富的绘图接口和工具,可以绘制各种静态、动态和交互式的图形。Matplotlib与NumPy、Pandas等Python数据分析库紧密结合,使得数据可视化过程更加便捷。

Matplotlib常用功能

基本绘图:包括折线图、散点图、柱状图、饼图等。
自定义样式:可以调整线条颜色、粗细、标记样式等。
坐标轴设置:可以设置坐标轴范围、刻度、标签等。
图例和标题:添加图例以区分不同数据系列,添加标题以描述图形内容。
子图绘制:可以在同一画布上绘制多个子图,方便对比不同数据集。
交互式图形:支持鼠标事件、键盘事件等,实现交互式数据可视化。

matplotlib画图基本语法

绘制图表
Matplotlib提供了多种绘图函数,以下列举几种常用的:

折线图
使用plt.plot()函数绘制折线图。
示例:plt.plot(x, y) 其中x和y是数据点的横纵坐标。
散点图
使用plt.scatter()函数绘制散点图。
示例:plt.scatter(x, y) 其中x和y是数据点的横纵坐标。
柱状图
使用plt.bar()函数绘制柱状图。
示例:plt.bar(x, heights) 其中x是柱子位置的横坐标,heights是柱子的高度。
设置坐标轴和图表样式
坐标轴设置
使用plt.xlabel()和plt.ylabel()设置x轴和y轴的标签。
使用plt.xlim()和plt.ylim()设置x轴和y轴的范围。
使用plt.xticks()和plt.yticks()设置x轴和y轴的刻度。
图表样式设置
使用plt.title()设置图表的标题。
使用plt.grid()添加网格线。
使用plt.legend()添加图例。
显示图表
使用plt.show()函数来显示绘制的图表

示例
一个综合使用Matplotlib的示例,包含绘制折线图和设置坐标轴样式:

import matplotlib.pyplot as plt  
  
# 数据  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 6, 8, 10]  
  
# 绘制折线图  
plt.plot(x, y, marker='o')  
  
# 设置坐标轴标签  
plt.xlabel('X轴标签')  
plt.ylabel('Y轴标签')  
  
# 设置坐标轴范围  
plt.xlim(0, 6)  
plt.ylim(0, 12)  
  
# 设置图表标题  
plt.title('Matplotlib绘图示例')  
  
# 显示网格线  
plt.grid(True)  
  
# 显示图表  
plt.show()

在这里插入图片描述

常见的图形及其绘制方法

以下是几种常见的图形及其绘制方法

折线图散点图柱状图直方图箱线图
折线图用于显示数据随时间或其他连续变量的变化趋势。散点图用于显示两个变量之间的关系。柱状图用于比较不同类别的数据。直方图用于显示数据的分布。箱线图用于显示数据的分布,包括中位数、四分位数和异常值。

1. 折线图(Line Plot)
折线图用于显示数据随时间或其他连续变量的变化趋势。
示例

import matplotlib.pyplot as plt  
import pandas as pd  
  
# 假设我们有一个DataFrame df,其中包含两列'date'和'value'  
# df = pd.read_csv('your_data.csv')  # 读取数据  
  
# 绘制折线图  
plt.figure(figsize=(10, 6))  # 设置图形大小  
plt.plot(df['date'], df['value'])  # 绘制折线  
plt.xlabel('Date')  # 设置x轴标签  
plt.ylabel('Value')  # 设置y轴标签  
plt.title('Line Plot of Value over Time')  # 设置图形标题  
plt.show()  # 显示图形

2. 柱状图(Bar Chart)
柱状图用于比较不同类别的数据。

# 假设df包含两列'category'和'value'  
  
# 绘制柱状图  
plt.figure(figsize=(10, 6))  
plt.bar(df['category'], df['value'])  # 绘制柱状图  
plt.xlabel('Category')  
plt.ylabel('Value')  
plt.title('Bar Chart of Value by Category')  
plt.show()

3. 散点图(Scatter Plot)
散点图用于显示两个变量之间的关系。

# 假设df包含两列'x'和'y'  
  
# 绘制散点图  
plt.figure(figsize=(10, 6))  
plt.scatter(df['x'], df['y'])  # 绘制散点图  
plt.xlabel('X')  
plt.ylabel('Y')  
plt.title('Scatter Plot of X and Y')  
plt.show()

4. 直方图(Histogram)
直方图用于显示数据的分布。

# 假设我们有一个包含数值的Series s  
# s = df['value']  # 从DataFrame中提取一列数据  
  
# 绘制直方图  
plt.figure(figsize=(10, 6))  
plt.hist(s, bins=30)  # bins参数指定直方图的柱子数量  
plt.xlabel('Value')  
plt.ylabel('Frequency')  
plt.title('Histogram of Value')  
plt.show()

5. 箱线图(Box Plot)
箱线图用于显示数据的分布,包括中位数、四分位数和异常值。

# 假设df包含多个类别和对应的数值列'value'  
  
# 绘制箱线图  
plt.figure(figsize=(10, 6))  
plt.boxplot(df['value'].values, labels=df['category'].unique())  # 绘制箱线图,并设置类别标签  
plt.title('Box Plot of Value by Category')  
plt.show()

同时绘制多张图的方法

1. 使用plt.subplots()创建多个子图
plt.subplots()函数允许你创建一个具有多个子图的图形。你可以指定子图的数量和布局。

import matplotlib.pyplot as plt  
import numpy as np  
  
# 创建数据  
x = np.linspace(0, 10, 100)  
y1 = np.sin(x)  
y2 = np.cos(x)  
  
# 创建一个包含2个子图的图表  
fig, axs = plt.subplots(2)  
  
# 在第一个子图上绘制sin(x)  
axs[0].plot(x, y1)  
axs[0].set_title('sin(x)')  
  
# 在第二个子图上绘制cos(x)  
axs[1].plot(x, y2)  
axs[1].set_title('cos(x)')  
  
# 显示图表  
plt.tight_layout()  # 调整子图间距  
plt.show()

在这里插入图片描述

2. 在同一个figure上使用add_subplot()创建多个子图
add_subplot()方法允许你在同一个figure上添加多个子图。

import matplotlib.pyplot as plt  
import numpy as np  
  
# 创建数据  
x1, x2, x3 = np.random.rand(3, 100)  
  
# 创建一个figure对象  
fig = plt.figure()  
  
# 添加第一个子图(1行3列的第1个)  
ax1 = fig.add_subplot(1, 3, 1)  
ax1.plot(x1)  
ax1.set_title('Plot 1')  
  
# 添加第二个子图(1行3列的第2个)  
ax2 = fig.add_subplot(1, 3, 2)  
ax2.plot(x2)  
ax2.set_title('Plot 2')  
  
# 添加第三个子图(1行3列的第3个)  
ax3 = fig.add_subplot(1, 3, 3)  
ax3.plot(x3)  
ax3.set_title('Plot 3')  
  
# 显示图表  
plt.tight_layout()  # 调整子图间距  
plt.show()

在这里插入图片描述

3. 使用seaborn库绘制多张图
seaborn是一个基于matplotlib的数据可视化库,它提供了更高级、更美观的绘图函数。

例如,你可以使用seaborn的barplot()函数来绘制多个条形图。

import seaborn as sns  
import pandas as pd  
  
# 假设我们有一个包含多个类别和对应值的数据集  
data = {  
    'Category': ['A', 'B', 'C', 'D'],  
    'Value1': [10, 15, 7, 12],  
    'Value2': [8, 6, 9, 10],  
    'Value3': [5, 9, 6, 14]  
}  
df = pd.DataFrame(data)  
  
# 绘制多个条形图  
sns.barplot(x='Category', y='Value1', data=df, color='blue', label='Value1')  
sns.barplot(x='Category', y='Value2', data=df, color='green', label='Value2')  
sns.barplot(x='Category', y='Value3', data=df, color='red', label='Value3')  
  
# 添加图例和标签  
plt.legend(title='Values')  
plt.xlabel('Category')  
plt.ylabel('Value')  
plt.title('Multiple Barplots')  
  
# 显示图形  
plt.show()

在这里插入图片描述

Pyecharts

作为一个基于ECharts的Python可视化库,为数据科学家和分析师提供了丰富的图表类型和强大的交互性。以下是对Pyecharts数据可视化的简要介绍和关键点概述。

一、Pyecharts简介

Pyecharts由百度数据可视化团队开发,是一个Python库,专门用于生成ECharts图表。ECharts本身是一个使用JavaScript实现的开源可视化库,而Pyecharts则是其Python接口,允许Python用户轻松创建各种交互式图表和地图。

二、Pyecharts的特点

丰富的图表类型:Pyecharts支持超过30种常见图表类型,包括柱形图、折线图、饼图、地图等,满足了大部分数据分析的可视化需求。
高度的灵活性:Pyecharts提供了丰富的配置项,允许用户对图表进行详细的定制,如颜色、字体、动画效果等。
强大的交互性:Pyecharts生成的图表支持缩放、拖拽、数据筛选等交互操作,帮助用户更深入地探索数据。
易于集成:Pyecharts可以轻松集成到Flask、Django等主流Web框架中,方便开发者构建数据可视化应用。
详细的文档和示例:Pyecharts提供了详细的中文文档和大量的示例代码,帮助开发者快速上手。

总结

通过这次学习,我深刻认识到Python在数据分析中的强大功能和广泛应用。我掌握了Python的基本语法和数据分析的基本流程,并能够在实际项目中应用所学知识。然而,我也意识到自己在某些方面还存在不足,如算法理解和模型优化等方面。因此,在未来的学习中,我将继续深入学习机器学习和深度学习等相关知识,不断提高自己的数据分析能力和算法设计能力。同时,我也将积极参与实际项目,通过实践不断提高自己的编程能力和解决问题的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值