数据分析 第二章 3.数据可视化

本文探讨了Python数据分析中的数据可视化,通过泰坦尼克号数据集展示了男女生存人数的柱状图。深入解析了pandas库的groupby功能,包括单类分组、多类分组和时间序列分组。还介绍了value_counts()方法,以及matplotlib库在图表绘制中的各种参数设置,以实现不同票价、仓位等级和年龄对生存人数分布的可视化展示。

课程资料参考自[1]
导入包和数据并且打印

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
text = pd.read_csv("E:/Python/python操作/Datawhale/datawhale数据分析/关于数据/第二章项目集合/result.csv")
print(text.head())
#    Unnamed: 0  PassengerId  Survived  ...     Fare Cabin Embarked
# 0           0            1         0  ...   7.2500   NaN        S
# 1           1            2         1  ...  71.2833   C85        C
# 2           2            3         1  ...   7.9250   NaN        S
# 3           3            4         1  ...  53.1000  C123        S
# 4           4            5         0  ...   8.0500   NaN        S
#
# [5 rows x 13 columns]

貌似pycharm显示csv文件不全是常规

  1. 可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)
'''可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)'''
sex = text.groupby('Sex')['Survived'].sum()
sex.plot.bar()
plt.title('survived_count')
plt.show()

在这里插入图片描述

关于groupby的介绍,见[2]
groupby就是按xx分组,比如, 将一个数据集按A进行分组, 效果是这样:
在这里插入图片描述
操作就是data.groupby('A'),这个会返回一个DataFrameGroupBy的东西。这个DataFrameGroupBy主要的功能能是允许你在不额外写循环的情况下, 快速对每一组数据进行操作。
最基本的就是组内计数, 求和, 求均值, 求方差,例如求不同种族内XX年龄的平均值,就是data.groupby('race')['age'].mean(),会得到一个Series
age是连续属性,还可以对离散属性进行操作,比如对不同取值的计数: .value_counts(),类似data.groupby('race')['signs_of_mental_illness'].value_counts()
效果图类似:

A False 29
True 10
B False 523
True 95
......
Name: signs_of_mental_illness, dtype: int64

这时, 组内操作的结果不是单个值, 是一个序列, 可以用.unstack()将它展开。

data.groupby('race')['signs_of_mental_illness'].value_counts().unstack()

效果图类似:
在这里插入图片描述

感觉这个还不够熟悉,接着查找资料找到了[6]
大佬主要分成了四个部分进行讲解:
第一部分是groupby的作用,第二部分是单类分组,第三类是多类分组,第四类是时间分组。
首先第一部分,groupby的作用是进行数据的分组以及分组后地组内运算

df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式——函数名称)

例如print(df["评分"].groupby([df["地区"],df["类型"]]).mean())

第二部分是单类分组,A.groupby("性别")
这个的意思是有一个变量A,数据类型是DataFrame,想要按照【性别】进行分组,得到的结果是一个Groupby对象,还没有进行任何的运算。
在这里插入图片描述
可以看到直接打印得到的结果是Groupby对象
刚刚也提到了没有任何的运算,如果加上了describe(),就是描述组内数据的基本统计量。

A.groupby("性别").describe().unstack()

在这里插入图片描述只有数字类型的列数据才会计算统计
示例里面数字类型的数据有两列 【班级】和【身高】
如果不需要【班级】只需要【身高】,就是A.groupby("性别")["身高"].describe().unstack()
在这里插入图片描述
第三个是多类分组,A.groupby( ["班级","性别"])
在这里插入图片描述
如多类分组的例子所示,单独用groupby,我们得到的还是一个 Groupby 对象。
关于相关的函数有:
在这里插入图片描述
还可以一次运用多个函数计算,例如
A.groupby( ["班级","性别"]).agg([np.sum, np.mean, np.std]) # 一次计算了三个
在这里插入图片描述
上面出现了agg(),表明分组多个运算。
第四个是关于时间序列的,这里就不写了,暂时不需要,有需要的时候再去看。
综上所述,也就是说

`文件.groupby(['属性','属性'])(属性指分类的属性,数据的限定定语,可以有多个。如果只有一个的时候那就是文件.groupby('属性'),如果是多个属性的话就是文件
<think>好的,用户想找Python数据分析与可视化的第二章实训资料或教程。首先,我需要看看用户提供的引用内容,特别是引用[2]提到了第二章实训的代码示例,包括读取CSV文件和处理数据。这可能来自某个博客或课程资料,比如优快云上的内容。用户可能需要的不仅仅是代码片段,而是完整的实训步骤、讲解或练习题。 接下来,我应该考虑用户可能没有明确表达的深层需求。他们可能在学习过程中遇到困难,需要更详细的指导,或者希望找到配套的数据集和分步说明。此外,用户可能对如何应用这些代码到实际项目中感兴趣,或者需要理解数据处理的基础概念。 需要验证引用链接是否有效,但根据信息,引用[2]的链接可能已经失效或者需要权限访问。这时候,建议用户通过其他途径查找,比如优快云搜索、学校资源或联系原作者。另外,可能需要提醒用户注意数据文件的路径是否正确,避免常见的文件读取错误。 最后,生成相关问题时要围绕数据分析与可视化的实训内容,可能涉及数据清洗、可视化库的使用、数据分析方法等。确保问题能够帮助用户进一步巩固第二章的知识,并引导他们深入学习和解决问题。</think>关于Python数据分析与可视化第二章实训资料,以下是具体建议和资源指引: ### 一、第二章实训核心内容 根据引用[2]的信息,第二章实训主要涉及: 1. CSV文件读写操作(使用Python内置csv模块) 2. 数据预处理基础(如数据格式转换、数据切片) 3. 数据探索性分析(初步统计、数据抽样) ### 二、获取资源的推荐途径 1. **优快云专业博客** - 搜索关键词:"Python数据分析与可视化 第二章实训" - 参考类似这篇结构完整的教程: ```python # 读取CSV文件标准写法(避免路径错误) import csv with open("white_wine.csv", &#39;r&#39;, encoding=&#39;utf-8&#39;) as f: reader = csv.reader(f) header = next(reader) # 读取表头 data = [row for row in reader] ``` 2. **教材配套资源** - 推荐《Python数据分析基础》董付国著,该书第3章包含CSV/Excel文件操作详解 - 查看教材官网是否提供实训数据集(如white_wine.csv) 3. **高校公开课程** - 中国大学MOOC搜索"Python数据分析"相关课程,例如: - 北京理工大学《Python数据分析与展示》 - 第2周通常包含文件操作实训[^2] ### 三、实训重点难点解析 1. **文件路径问题** - 原始代码`F:\专业课程作业...`存在转义符问题,应改为: ```python r"F:\专业课程作业\python时空数据分析与可视化\white_wine.csv" ``` 或 ```python "F:/专业课程作业/python时空数据分析与可视化/white_wine.csv" ``` 2. **数据处理进阶** ```python # 数据清洗示例(处理缺失值) clean_data = [row for row in data if None not in row and &#39;&#39; not in row] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值