Pandas 数据分析实战:酒类消费数据分析
一. 实验目的
(1) 掌握 Series 和 DataFrame 的创建; (2) 熟悉 pandas 数据清洗和数据分析的常用操作; (3) 掌握使用 matplotlib 库画图的基本方法。
二. 实验平台
(1) 操作系统:Windows 系统; (2) Python 版本:3.8.7
三. 实验步骤
酒类消费数据
给定一个某段时间内各个国家的酒类消费数据表 drinks.csv,其中包含 6 个字段,表 8-1 给出了该表中的字段信息。
表 6-1 酒类消费数据表的字段信息
| 字段名称 | 说明 | |---|---| | Country | 国家 | | beer_servings | 啤酒消费量 | | spirit_servings | 烈酒消费量 | | wine_servings | 红酒消费量 | | total_litres_of_pure_alcohol | 纯酒精消费总量 | | Continent | 所在的大洲 |
完成以下的任务:
(1) 用 pandas 将酒类消费数据表中的数据读取为 DataFrame,输出包含缺失值的行; (2) 在使用 read_csv 函数读取酒类消费数据表时(除文件地址外不添加额外的参数),pandas 将 continent 字段中的 'NA'(代表北美洲,North American)自动识别为 NaN。因此,需要将 continent 字段中的 NaN 全部替换为字符串 NA。如果学有余力,可以自行在网络上调研如何在 read_csv 函数中添加参数使 NA 不被识别为 NaN; (3) 分别输出各个大洲的平均啤酒、烈酒和红酒的消费量; (4) 分别输出啤酒、烈酒和红酒消费量最高的国家。
1. 读取数据并输出包含缺失值的行
import pandas as pd
df = pd.read_csv('drinks.csv')
print(df[df.isnull().T.any()])
2. 将 NA 替换为字符串 NA
df = pd.read_csv('drinks.csv', na_values='')
df['Continent'].fillna('NA', inplace=True)
3. 输出各个大洲的平均啤酒、烈酒和红酒的消费量
beer_mean = df.groupby('Continent')['beer_servings'].mean()
spirit_mean = df.groupby('Continent')['spirit_servings'].mean()
wine_mean = df.groupby('Continent')['wine_servings'].mean()
print('平均啤酒消费量:\n', beer_mean)
print('平均烈酒消费量:\n', spirit_mean)
print('平均红酒消费量:\n', wine_mean)
4. 输出啤酒、烈酒和红酒消费量最高的国家
beer_top = df[['Country', 'beer_servings']].sort_values(by='beer_servings', ascending=False).iloc[0]
spirit_top = df[['Country', 'spirit_servings']].sort_values(by='spirit_servings', ascending=False).iloc[0]
wine_top = df[['Country', 'wine_servings']].sort_values(by='wine_servings', ascending=False).iloc[0]
print('啤酒消费量最高的国家:', beer_top[0], beer_top[1])
print('烈酒消费量最高的国家:', spirit_top[0], spirit_top[1])
print('红酒消费量最高的国家:', wine_top[0], wine_top[1])
原文地址: https://www.cveoy.top/t/topic/oXbL 著作权归作者所有。请勿转载和采集!