给定一个时间内某段各个国家的酒类消费数据表drinks.csv,其中包含6个字段,表8-1给出了该表中的字段信息。 表8-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)分别输出啤酒、烈酒和红酒消费量最高的国家。
时间: 2024-02-01 10:13:59 浏览: 116
Drinks.csv
以下是代码实现:
```python
import pandas as pd
# 读取数据并输出包含缺失值的行
drinks = pd.read_csv('drinks.csv')
print(drinks[drinks.isnull().any(axis=1)])
# 将continent字段中的NaN全部替换为字符串NA
drinks['Continent'].fillna('NA', inplace=True)
# 分别输出各个大洲的平均啤酒、烈酒和红酒的消费量
continent_mean = drinks.groupby('Continent').mean()[['beer_servings', 'spirit_servings', 'wine_servings']]
print(continent_mean)
# 分别输出啤酒、烈酒和红酒消费量最高的国家
max_beer = drinks.loc[drinks['beer_servings'].idxmax()]['Country']
max_spirit = drinks.loc[drinks['spirit_servings'].idxmax()]['Country']
max_wine = drinks.loc[drinks['wine_servings'].idxmax()]['Country']
print('最高啤酒消费量的国家是:', max_beer)
print('最高烈酒消费量的国家是:', max_spirit)
print('最高红酒消费量的国家是:', max_wine)
```
其中,(1)的输出结果为包含缺失值的行;(2)的处理通过 `fillna()` 方法将NaN替换为NA;(3)的平均消费量使用 `groupby()` 方法进行分组求平均;(4)的输出结果使用 `idxmax()` 找到各个字段的最大值所在行的索引,然后使用 `loc[]` 方法获取该行的Country值。
阅读全文