Pandas是入门Python做数据分析所必须要掌握的一个库,这里精选了十套练习题,可帮助你快速上手Python代码,完成数据集探索。
【小提示:本文所使用的数据集下载地址:DATA | TRAIN 练习数据集】
原文链接:一两赘肉无:10套练习,教你如何用Pandas做数据分析【1-5】
练习1-开始了解你的数据
探索Chipotle快餐数据
相应数据集:chipotle.tsv
步骤1 导入必要的库
# 运行以下代码
import pandas as pd
步骤2 从如下地址导入数据集
# 运行以下代码
path1 = "../input/pandas_exercise/exercise_data/chipotle.tsv" # chipotle.tsv
步骤3 将数据集存入一个名为chipo的数据框内
# 运行以下代码
chipo = pd.read_csv(path1, sep = '\t')
步骤4 查看前10行内容
# 运行以下代码
chipo.head(10)
out[235]:
步骤6 数据集中有多少个列(columns)
# 运行以下代码
chipo.shape[1]
out[236]:
5
步骤7 打印出全部的列名称
# 运行以下代码
chipo.columns
out[237]:
Index(['order_id', 'quantity', 'item_name', 'choice_description', 'item_price'], dtype='object')
步骤8 数据集的索引是怎样的
# 运行以下代码
chipo.index
out[238]:
RangeIndex(start=0, stop=4622, step=1)
步骤9 被下单数最多商品(item)是什么?
# 运行以下代码,做了修正
c = chipo[['item_name','quantity']].groupby(['item_name'],as_index=False).agg({'quantity':sum})
c.sort_values(['quantity'],ascending=False,inplace=True)
c.head()
out[239]:
步骤10 在item_name这一列中,一共有多少种商品被下单?
# 运行以下代码
chipo['item_name'].nunique()
out[240]:
50
步骤11 在choice_description中,下单次数最多的商品是什么?
# 运行以下代码,存在一些小问题
chipo['choice_description'].value_counts().head()
out[241]:
[Diet Coke] 134
[Coke] 123
[Sprite] 77
[Fresh Tomato Salsa, [Rice, Black Beans, Cheese, Sour Cream, Lettuce]] 42
[Fresh Tomato Salsa, [Rice, Black Beans, Cheese, Sour Cream, Guacamole, Lettuce]] 40
Name: choice_description, dtype: int64
步骤12 一共有多少商品被下单?
# 运行以下代码
total_items_orders = chipo['quantity'].sum()
total_items_orders
out[242]:
4972
步骤13 将item_price转换为浮点数
# 运行以下代码
dollarizer = lambda x: float(x[1:-1])
chipo['item_price'] = chipo['item_price'].apply(dollarizer)
步骤14 在该数据集对应的时期内,收入(revenue)是多少
# 运行以下代码,已经做更正
chipo['sub_total'] = round(chipo['item_price'] * chipo['quantity'],2)
chipo['sub_total'].sum()
out[244]:
39237.02
步骤15 在该数据集对应的时期内,一共有多少订单?
# 运行以下代码
chipo['order_id'].nunique()
out[245]:
1834
步骤16 每一单(order)对应的平均总价是多少?
# 运行以下代码,已经做过更正
chipo[['order_id','sub_total']].groupby(by=['order_id']
).agg({'sub_total':'sum'})['sub_total'].mean()
out[246]:
21.39423118865867
步骤17 一共有多少种不同的商品被售出?
# 运行以下代码
chipo['item_name'].nunique()
out[247]:
50
练习2-数据过滤与排序
探索欧洲杯数据
相应数据集:Euro_stats.csv
步骤1 - 导入必要的库
# 运行以下代码
import pandas as pd
步骤2 - 从以下地址导入数据集
# 运行以下代码
path2 = "../input/pandas_exercise/exercise_data/Euro_stats.csv" # Euro_stats.csv
步骤3 - 将数据集命名为euro12
# 运行以下代码
euro12 = pd.read_csv(path2)
euro12
out[250]:
步骤4 只选取 Goals 这一列
# 运行以下代码
euro12.Goals
out[251]:
0 4
1 4
2 4
3 5
4 3
5 10
6 5
7 6
8 2
9 2
10 6
11 1
12 5
13 12
14 5
15 2
Name: Goals, dtype: int64
步骤5 有多少球队参与了欧洲杯?
# 运行以下代码
euro12.shape[0]
out[252]:
16
步骤6 该数据集中一共有多少列(columns)?
# 运行以下代码
euro12.info()
步骤7 将数据集中的列Team, Yellow Cards和Red Cards单独存为一个名叫discipline的数据框
# 运行以下代码
discipline = euro12[['Team', 'Yellow Cards', 'Red Cards']]
discipline
out[254]:
步骤8 对数据框discipline按照先Red Cards再Yellow Cards进行排序
# 运行以下代码
discipline.sort_values(['Red Cards', 'Yellow Cards'], ascending = False)
out[255]:
步骤9 计算每个球队拿到的黄牌数的平均值
# 运行以下代码
round(discipline['Yellow Cards'].mean())
out[256]:
7.0
步骤10 找到进球数Goals超过6的球队数据
# 运行以下代码
euro12[euro12.Goals > 6]
out[257]:
步骤11 选取以字母G开头的球队数据
# 运行以下代码
euro12[euro12.Team.str.startswith('G')]
out[258]:
步骤12 选取前7列
# 运行以下代码
euro12.iloc[: , 0:7]
out[259]:
步骤13 选取除了最后3列之外的全部列
# 运行以下代码
euro12.iloc[: , :-3]
out[260]:
步骤14 找到英格兰(England)、意大利(Italy)和俄罗斯(Russia)的射正率(Shooting Accuracy)
# 运行以下代码
euro12.loc[euro12.Team.isin(['England', 'Italy', 'Russia']), ['Team','Shooting Accuracy']]
out[261]:
查看完整内容可点击以下文章链接,或前往和鲸社区查看一两赘肉无:10套练习,教你如何用Pandas做数据分析【1-5】一两赘肉无:10套练习,教你如何用Pandas做数据分析【6-10】
如果觉得《有没有好的python教程推荐_学习python中的pandas有没有好的教程推荐?》对你有帮助,请点赞、收藏,并留下你的观点哦!