互动剧本练习题
1.解开数据分析的面纱
互动练习:第一个numpy数组
关键知识点:
np.array
练习介绍:
本节课中我们学习并了解了numpy中数组的创建以及切片的知识点,下面让我们进行一下练习,巩固一下知识点
题目说明
题目要求:
《多啦A梦》大雄班考试结果出来了,成绩存储于列表scores,现在要根据列表将其创建为数组,并检验最后结果是否是数组类型的
题目讲解:
1. 导入numpy包 并将其重命名为np
2. 使用np.array将列表scores创建为数组,并赋值为score_arr
3. 使用type获取score_arr的类型,并呈现出来
步骤说明
解题思路:
1. 导入numpy包 并将其重命名为np
2. 使用np.array将列表scores创建为数组,并赋值为score_arr
3. 使用type获取score_arr的类型,并呈现出来
代码实现:
# 声明一个列表 存放大雄班级的学生成绩
scores = [77, 65, 83, 92, 57, 88]
# 导入numpy包 并将其重命名为np
import numpy as np
# 使用np.array将列表scores创建为数组,并赋值为score_arr
score_arr = np.array(scores)
# 使用type获取score_arr的类型,并呈现出来
print(type(score_arr))
互动练习:numpy数组的索引与切片
关键知识点:
数组的索引和切片
练习介绍:
本节课中我们学习并了解了numpy中数组的创建以及切片的知识点,下面让我们进行一下练习,巩固一下知识点
题目说明
题目要求:
《多啦A梦》大雄学校把所有班级的成绩进行了整合与降序排序,依次是1到5班的成绩,校长现在想查看一下3班的成绩以及每个班级中的最高分和最低分
题目讲解:
1. 班级是1-5班,所以三班是二维中的第三行
2. 每个班级的成绩是降序排序完成的,最高的就是第一列,最低的就是最后一列
步骤说明
解题思路:
1. 班级是1-5班,所以三班是二维中的第三行
2. 每个班级的成绩是降序排序完成的,最高的就是第一列,最低的就是最后一列
代码实现:
# 声明一个列表 存放学校所有班级的学生成绩
scores = [[92, 87, 83, 76, 66, 54],
[99, 92, 88, 85, 73, 61],
[94, 90, 83, 79, 76, 65],
[88, 87, 85, 79, 76, 70],
[90, 87, 80, 73, 69, 61]]
# 导入numpy包 并将其重命名为np
import numpy as np
# 使用np.array将列表scores创建为数组,并赋值为score_arr
score_arr = np.array(scores)
# 班级是1-5班,所以三班是二维中的第三行,下标是从0开始的
print(score_arr[2])
# 每个班级的成绩是降序排序完成的,最高的就是第一列,最低的就是最后一列
print(score_arr[:,[0, -1]])
2.运动健将的体育风采
互动练习:大雄班级成绩展示
关键知识点:
Series的创建
练习介绍:
本节课中我们学习并了解了Series的创建以及切片的知识点,下面让我们进行一下练习,巩固一下知识点
题目说明
题目要求:
《多啦A梦》大雄学校要把大雄班级中学生(大雄、胖虎、静香、小夫、英才)及其成绩(62、58、99、76、95)以Series的形式展示出来
题目讲解:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series
3. 将姓名和成绩分别放在不同的列表中
4. 以姓名作为索引,以成绩作为值进行创建
步骤说明
解题思路:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series
3. 将姓名和成绩分别放在不同的列表中
4. 以姓名作为索引,以成绩作为值进行创建
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series
# 准备数据资源
names = ['大雄', '胖虎', '静香', '小夫', '英才']
scores = [62, 58, 99, 76, 95]
# 创建Series
s = Series(index=names, data=scores)
print(s)
互动练习:变动的班级
关键知识点:
Series的属性与方法
练习介绍:
本节课中我们学习并了解了Series的创建以及切片、属性等的知识点,下面让我们进行一下练习,巩固一下知识点
题目说明
题目要求:
《多啦A梦》大雄学校要把大雄班级中学生(大雄、胖虎、静香、小夫、英才)及其成绩(62、58、99、76、95)以Series的形式展示出来,再完成下面的需求:
1. 静香因爸爸工作的原因转校了,因此需要把静香移除
2. 班里来了一个转校生明丽,考试成绩是100
3. 校长抽查成绩,想看胖虎和英才的成绩
题目讲解:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series
3. 将姓名和成绩分别放在不同的列表中
4. 以姓名作为索引,以成绩作为值进行创建
5. 移除静香
6. 添加明丽
7. 通过索引查看胖虎和英才
步骤说明
解题思路:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series
3. 将姓名和成绩分别放在不同的列表中
4. 以姓名作为索引,以成绩作为值进行创建
5. 移除静香
6. 添加明丽
7. 通过索引查看胖虎和英才
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series
# 准备数据资源
names = ['大雄', '胖虎', '静香', '小夫', '英才']
scores = [62, 58, 99, 76, 95]
# 创建Series
s = Series(index=names, data=scores)
print(s)
# 移除静香
s.drop(index='静香', inplace=True)
print(s)
# 添加明丽
s['明丽'] = 100
print(s)
# 通过索引查看胖虎和英才
print(s[['胖虎', '英才']])
3.詹姆斯-哈登的致胜宝典
互动练习:DataFrame的创建
关键知识点:
DataFrame的创建
练习介绍:
本节课中我们学习并了解了DataFrame的创建以及切片、属性等的知识点,下面让我们进行一下练习,巩固一下知识点
题目说明
题目要求:
《多啦A梦》大雄老师让大雄统计班级中的学生信息,并使用DataFrame展示出来,展示信息有姓名 年龄 性别
学生信息为
data = {
'姓名':[‘大雄’,'静香','胖虎','小夫', '英才'],
'年龄':[10, 9, 11, 10, 10],
'性别':['男', '女', '男', '男', '男']
}
题目讲解:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series和DataFrame
3. 根据展示的数据,创建DataFrame
步骤说明
解题思路:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series和DataFrame
3. 根据展示的数据,创建DataFrame
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 准备数据资源
data = {
'姓名':[‘大雄’,'静香','胖虎','小夫', '英才'],
'年龄':[10, 9, 11, 10, 10],
'性别':['男', '女', '男', '男', '男']
}
# 创建Data
df = DataFrame(data=data)
print(df)
互动练习:DataFrame属性和方法
关键知识点:
DataFrame的属性和方法
练习介绍:
本节课中我们学习并了解了DataFrame的创建以及切片、属性等的知识点,下面让我们进行一下练习,巩固一下知识点
题目说明
题目要求:
《多啦A梦》大雄已经使用DataFrame展示了班级学生的信息,如下所示
姓名 年龄 性别
0 大雄 10 男
1 静香 9 女
2 胖虎 11 男
3 小夫 10 男
4 英才 10 男
下面根据要求完成对应的操作
1. 老师感觉这个行索引比较单调,想让大雄改成 001, 002, 003, 004, 005
2. 老师想看一下003和005学生的信息
3. 老师想看一下每个学生姓名及其性别
4. 老师想看一下003和005学生的性别
题目讲解:
在数据结构的基础上,使用rename修改行索引,然后使用.loc获取多行数据以及多列数据
步骤说明
解题思路:
1. 在数据的基础上使用rename修改行索引
2. 在数据的基础上使用.loc获取多行
3. 在数据的基础上使用df[[列,列1]]形式获取多列
4. 使用.loc获取多行的基础上获取列
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 准备数据资源
data = {
'姓名':[‘大雄’,'静香','胖虎','小夫', '英才'],
'年龄':[10, 9, 11, 10, 10],
'性别':['男', '女', '男', '男', '男']
}
# 创建DataFrame
df = DataFrame(data=data)
print(df)
# 1.修改行索引
df.rename(index={0:'001', 1:'002', 2:'003', 3:'004', 4:'005'}, inplace=True)
print(df)
# 2. 获取多行数据
rows = df.loc[['003', '005']]
print(rows)
# 3.获取多列
columns = df[['姓名', '性别']]
print(columns)
# 4. 多行多列
data = df.loc[['003', '005'], '性别']
print(data)
4.抖音大V谁家最强
互动练习:DataFrame读取文件
关键知识点:
DataFrame读取文件
练习介绍:
本节课中我们学习并了解了DataFrame对文件的读写操作, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
已知当前目录下有Euro2012_stats.csv 欧洲杯信息文件,将其读取出来并把第一列当做行索引
题目讲解:
使用read_csv方法读取文件,并设置index_col
步骤说明
解题思路:
1. 导入pandas 重命名为pd
2. 在pandas中导入Series和DataFrame
3. 使用pd.read_csv读取文件
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 使用pd.read_csv读取文件 并把行索引设置为第一列的下标【以第一列为行索引】
df = pd.read_csv('Euro2012_stats.csv', index_col=0)
print(df)
互动练习:DataFrame写入数据
关键知识点:
DataFrame项文件中写入数据
练习介绍:
本节课中我们学习并了解了DataFrame对文件的读写操作, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
读取Euro2012_stats.csv 欧洲杯信息文件,并把第一列当做行索引,将数据集中的列Yellow Cards和Red Cards这几列单独提取出来存储与一个新的team.csv文件中
题目讲解:
1. 读取数据
2. 提取Yellow Cards 和 Red Cards这两列赋值给新的变量team
3. team.to_csv存储与team.csv文件中
步骤说明
解题思路:
1. 读取数据
2. 提取Yellow Cards 和 Red Cards这两列赋值给新的变量team
3. team.to_csv存储与team.csv文件中
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 使用pd.read_csv读取文件 并把行索引设置为第一列的下标【以第一列为行索引】
df = pd.read_csv('Euro2012_stats.csv', index_col=0)
print(df)
# 提取Yellow Cards 和 Red Cards这两列赋值给新的变量team
team = df[['Yellow Cards', 'Red Cards']]
print(team)
# team.to_csv存储与team.csv文件中
team.to_csv('team.csv')
5.电影大屏幕的捞金霸主
互动练习:DataFrame空值与重复项处理
关键知识点:
DataFrame空值与重复项处理
练习介绍:
本节课中我们学习并了解了DataFrame空值与重复项处理, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
已有DataFrame中数据格式如下
姓名 年龄 性别 成绩 班级
1 王乐乐 17 男 77 1班
2 耿慧慧 16 女 85 1班
3 赵亮亮 18 男 91 1班
4 王乐乐1 16 NaN 87 1班
5 于聪聪 17 男 69 1班
6 王乐乐 17 男 77 1班
完成如下操作:
1. 对性别这一列对空值从上向下填充
2. 删除数据中的重复项
题目讲解:
1. 根据数据使用fillna对空值填充
2. 使用drop_duplicates对重复行处理
步骤说明
解题思路:
1. 根据数据使用fillna对空值填充
2. 使用drop_duplicates对重复行处理
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
import numpy as np
# 准备数据
data = {
'姓名': ['王乐乐', '耿慧慧', '赵亮亮', '王乐乐1', '于聪聪', '王乐乐'],
'年龄': [17, 16, 18, 16, 17, 17],
'性别': ['男', '女', '男', np.nan, '男', '男'],
'成绩': [77, 85, 91, 87, 69, 77],
'班级': ['1班', '1班', '1班', '1班', '1班', '1班']
}
df = DataFrame(data=data, index=range(1, 7))
print(df)
# 根据数据使用fillna对空值填充
df['性别'].fillna(method='ffill', inplace=True)
print(df)
# 使用drop_duplicates对重复行处理
df.drop_duplicates(inplace=True)
print(df)
6.药房与考试大融合
互动练习:DataFrame合并、筛选及排序
关键知识点:
DataFrame合并、筛选及排序
练习介绍:
本节课中我们学习并了解了DataFrame合并、筛选及排序, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
有state-abbrevs.csv、state-areas.csv、state-population.csv三个文件分别表示各州名及其对应的缩写、各州对应的面积、各州人数情况,已经三个文件中的数据读取并分别赋予给了abbrevs、areas、population三个变量,各个数据格式为:
abbrevs中的数据:
state abbreviation
0 Alabama AL
1 Alaska AK
2 Arizona AZ
...
areas中的数据:
state area (sq. mi)
0 Alabama 52423
1 Alaska 656425
2 Arizona 114006
...
population中的数据:
state/region ages year population
0 AL under18 2012 1117489.0
1 AL total 2012 4817528.0
2 AL under18 2010 1130966.0
3 AL total 2010 4785570.0
...
完成下列需求
1. 合并state-population和state-abbrevs两个DataFrame,分别依据state/region列和abbreviation 列来合并,为了保留所有数据,建议使用外合并 将结果赋值给state_population
2. 在state_population去除abbreviation的那一列(axis=1)
3. 将state_population与areas进行合并 保留所有数据 并赋值给 state_areas_population
4. 筛选出2010年各州人口数据 并赋值给state_population_2010
5. 对state_population_2010按照人口数population进行降序排序
题目讲解:
1. 使用merge合并两个数据
2. 使用drop删除指定列
3. 使用merge合并
4. 筛选year为2010并且ages为total的数据
5. 使用sort_values进行排序
步骤说明
解题思路:
1. 使用merge合并两个数据
2. 使用drop删除指定列
3. 使用merge合并
4. 筛选year为2010并且ages为total的数据
5. 使用sort_values进行排序
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
import numpy as np
# 导入数据
abbrevs = pd.read_csv('state-abbrevs.csv')
print(abbrevs)
areas = pd.read_csv('state-areas.csv')
print(areas)
population = pd.read_csv('state-population.csv')
print(population)
# 合并数据
state_population = abbrevs.merge(population, how='outer', left_on='abbreviation', right_on='state/region')
print(state_population)
# 删除列
state_population.drop(columns=['abbreviation'], inplace=True)
print(state_population)
# 将面积合并进来
state_areas_population = state_population.merge(areas, how='outer')
print(state_areas_population)
# 筛选数据
state_population_2010 = state_areas_population[(state_areas_population.year==2010) & (state_areas_population.ages=='total')]
print(state_population_2010)
# 降序排序
state_population_2010.sort_values(by='population', ascending=False, inplace=True)
print(state_population_2010)
7.李佳琦也会赶来看热闹
互动练习:DataFrame分组与聚合函数
关键知识点:
DataFrame分组与聚合函数
练习介绍:
本节课中我们学习并了解了DataFrame分组与聚合函数, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
读取tips.csv中的数据
| total_bill | tip | sex | smoker | day | time | size
| 消费金额 | 小费 | 性别 | 是否吸烟 | 用餐时间(星期几) | 用餐时间(早中晚) | 用餐人数
完成下面需求:
1. 根据smoker进行分组 统计吸烟者与不吸烟者的数量
2. 根据time进行分组 统计每个时间段的用餐人数
3. 根据day与time进行分组 统计不同时间的消费金额总值与平均值
题目讲解:
1. 使用groupby根据smoker进行分组 在获取每个分组下的个数
2. 使用groupby根据time进行分组 求用餐人数size的和
3. 使用groupby根据day和time进行分组 求消费金额total_bill的sum和 与 mean平均值
步骤说明
解题思路:
1. 使用groupby根据smoker进行分组 在获取每个分组下的个数
2. 使用groupby根据time进行分组 求用餐人数size的和
3. 使用groupby根据day和time进行分组 求消费金额total_bill的sum和 与 mean平均值
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 准备数据
tips = pd.read_csv('tips.csv')
print(tips)
# 使用groupby根据smoker进行分组 在获取每个分组下的个数
smoker_size = tips.groupby(by='smoker').size()
print(smoker_size)
# 使用groupby根据time进行分组 求用餐人数size的和
total_size = tips.groupby(by='time').agg({'size':'sum'})
print(total_size)
# 使用groupby根据day和time进行分组 求消费金额total_bill的sum和 与 mean平均值
total_bills = tips.groupby(by=['day', 'time']).agg({
'total_bill':['sum', 'mean']
})
print(total_bills)
8.层层脱下你的衣服
互动练习:DataFrame层次化索引
关键知识点:
DataFrame层次化索引
练习介绍:
本节课中我们学习并了解了DataFrame层次化索引, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
《多啦A梦》老师让大雄把班级中第一学期与第二学期的每个学生的Python、Java、C科目成绩整理出来,以下面结构显示:
第一学期 第二学期
python java c python java c
tom 99 65 96 59 66 92
jack 91 42 65 53 40 44
lucy 99 90 76 70 38 96
完成以下要求:
1. 根据结构创建对应的DataFrame 【成绩随机产生】
2. 获取lucy第一学期各学科成绩
3. 查看tom每个学期的各科成绩
4. 对第二学期的C语言成绩进行降序排序
题目讲解:
1. 根据数据结构分析出有两层列索引与一个行索引,因此数据的话是3行6列
2. 使用np.random.randint随机生成3行6列的数据表示成绩,然后再设置行列索引
3. 要获取lucy第一学期的成绩的话 可以使用.loc获取行与第一层的列
4. 要查看tom的成绩只需要使用.loc获取行即可
5. 先获取第二学期的C语言的成绩,再使用sort_values进行降序排序
步骤说明
解题思路:
1. 根据数据结构分析出有两层列索引与一个行索引,因此数据的话是3行6列
2. 使用np.random.randint随机生成3行6列的数据表示成绩,然后再设置行列索引
3. 要获取lucy第一学期的成绩的话 可以使用.loc获取行与第一层的列
4. 要查看tom的成绩只需要使用.loc获取行即可
5. 先获取第二学期的C语言的成绩,再使用sort_values进行降序排序
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 导入numpy
import numpy as np
# 分析数据结构
columns = [
['第一学期','第二学期'],
['python','java','c']
]
mcolumns = pd.MultiIndex.from_product(columns)
index = ['tom','jack','lucy']
# 生成数据
df = DataFrame(data=np.random.randint(30, 100, size=(3, 6)), index=index, columns=mcolumns)
print(df)
# 获取lucy的成绩
lucy = df.loc['lucy', '第一学期']
print(lucy)
# 获取tom的成绩
tom = df.loc['tom']
print(tom)
# 获取c语言的成绩 进行降序排序
c = df[('第二学期', 'c')]
sort_c = c.sort_values(ascending=False)
print(sort_c)
互动练习:DataFrame的时间操作
关键知识点:
DataFrame的时间操作
练习介绍:
本节课中我们学习并了解了DataFrame的时间操作dt, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
有一用户行为分析文件userbehaviour.csv,数据结构如下:
uid gid tid behaviour tel datetime
1000169 1328010 959452 pv 1505117799 2017/9/11 16:16
112815 2489903 1487591 pv 1509965092 2017/11/6 18:44
108233 4336503 3531700 pv 1510320815 2017/11/10 21:33
uid表示用户id
gid表示商品id
tid表示商品类型id
behaviour表示用户行为 pv是浏览 fav是收藏 buy是购买 cart是加入购物车
tel是手机号
datetime表示用户行为对应的时间
读取文件 完成如下操作
1. 获取21点用户量
2. 将小时单独提取出来作为一列添加在数据中 列名为hour
3. 根据hour进行分组 统计每个时间段的人数
题目讲解:
1. 根据dt.hour获取21点的用户量uid的count值
2. 以dt.hour获取用户的时间以列的形式添加在数据中
3. 使用groupby进行以hour进行分组 统计每个分组下的数量
步骤说明
解题思路:
1. 根据dt.hour获取21点的用户量uid的count值
2. 以dt.hour获取用户的时间以列的形式添加在数据中
3. 使用groupby进行以hour进行分组 统计每个分组下的数量
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 导入numpy
import numpy as np
# 准备数据
df = pd.read_csv('userbehaviour.csv')
print(df)
import datetime
# 要将序列中的所有数据进行转化 需要使用映射 map
df.datetime = df.datetime.map(lambda dt: datetime.datetime.strptime(dt,'%Y/%m/%d %H:%M'))
# 根据dt.hour获取21点的用户量uid的count值
count = df[df.datetime.dt.hour == 21].uid.count()
print(count)
# 以dt.hour获取用户的时间以列的形式添加在数据中
df['hour'] = df.datetime.dt.hour
print(df)
# 使用groupby进行以hour进行分组 统计每个分组下的数量
size = df.groupby(by='hour').size()
print(size)
9.下一个梵高就是你
互动练习:Matplotlib图形化
关键知识点:
Matplotlib图形化
练习介绍:
本节课中我们学习并了解了Matplotlib图形化的常见图的绘制, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
读取penguins.csv 记载企鹅的数据,数据结构如下:
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
0 Adelie Torgersen 39.1 18.7 181.0 3750.0 MALE
1 Adelie Torgersen 39.5 17.4 186.0 3800.0 FEMALE
2 Adelie Torgersen 40.3 18.0 195.0 3250.0 FEMALE
3 Adelie Torgersen NaN NaN NaN NaN NaN
完成如下操作
1.1 空值处理 将空值进行向上填充
1.2 使用条形图绘制不同种类species的企鹅平均体重body_mass_g值
1.3 使用直方图展示不同中类的企鹅鳍长flipper_length_mm值的分布
1.4 绘制不同岛上展示企鹅数量的饼状图
题目讲解:
1. 使用fillna中method='ffill'填充空值
2. 使用plt.bar展示图形
3. 使用hist展示不同种类的企鹅鳍长的分布,查看根据鳍长是否能判断出是哪种企鹅
4. 使用pie展示不同种类的企鹅的数量
步骤说明
解题思路:
1. 使用fillna中method='ffill'填充空值
2. 使用plt.bar展示图形
3. 使用hist展示不同种类的企鹅鳍长的分布,查看根据鳍长是否能判断出是哪种企鹅
4. 使用pie展示不同种类的企鹅的数量
代码实现:
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
0 Adelie Torgersen 39.1 18.7 181.0 3750.0 MALE
1 Adelie Torgersen 39.5 17.4 186.0 3800.0 FEMALE
2 Adelie Torgersen 40.3 18.0 195.0 3250.0 FEMALE
3 Adelie Torgersen NaN NaN NaN NaN NaN
10.还在用美颜相机?你out了
互动练习:Seaborn绘制
关键知识点:
Seaborn绘制
练习介绍:
本节课中我们学习并了解了Seaborn绘制, 下面我们使用练习来进行巩固吧
题目说明
题目要求:
读取penguins.csv 记载企鹅的数据,数据结构如下:
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
0 Adelie Torgersen 39.1 18.7 181.0 3750.0 MALE
1 Adelie Torgersen 39.5 17.4 186.0 3800.0 FEMALE
2 Adelie Torgersen 40.3 18.0 195.0 3250.0 FEMALE
3 Adelie Torgersen NaN NaN NaN NaN NaN
完成如下操作
1.1 空值处理 将空值进行向上填充
1.2 使用条形图绘制不同种类species的企鹅平均体重body_mass_g值
1.3 使用直方图展示不同中类的企鹅鳍长flipper_length_mm值的分布
1.4 绘制不同岛上展示企鹅数量的饼状图
题目讲解:
1. 使用fillna中method='ffill'填充空值
2. 使用seaborn下的barplot展示图形
3. 使用seaborn的distplot绘制直方图展示不同种类的企鹅鳍长的分布,查看根据鳍长是否能判断出是哪种企鹅
4. 使用seaborn的lmplot绘制散点图 查看一下喙长bill_length_mm 与 喙宽bill_depth_mm的关系
步骤说明
解题思路:
1. 使用fillna中method='ffill'填充空值
2. 使用seaborn下的barplot展示图形
3. 使用seaborn的distplot绘制直方图展示不同种类的企鹅鳍长的分布,查看根据鳍长是否能判断出是哪种企鹅
4. 使用seaborn的lmplot绘制散点图 查看一下喙长bill_length_mm 与 喙宽bill_depth_mm的关系
代码实现:
# 导入pandas 并重命名为pd
import pandas as pd
# 导入Series
from pandas import Series, DataFrame
# 导入numpy
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
penguins = pd.read_csv('penguins.csv')
print(penguins)
# 填充空值
penguins.fillna(method='ffill', inplace=True)
print(penguins)
# 不同种类species的企鹅平均体重body_mass_g值条形图
sns.barplot(x='species', y='body_mass_g', data=penguins, hue='species')
# 不同种类的企鹅的鳍长数据统计 根据数据绘制直方图
sns.displot(data=penguins, x='flipper_length_mm', hue='species')
# 使用seaborn的lmplot绘制散点图 查看一下喙长bill_length_mm 与 喙宽bill_depth_mm的关系
sns.lmplot(x='bill_length_mm', y='bill_depth_mm', data=penguins, hue='species')
更多关于python培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。