一. 实验目的

(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])
Pandas 数据分析实战:酒类消费数据分析

原文地址: https://www.cveoy.top/t/topic/oXbL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录