给定一个某段时间内各个国家的酒类消费数据表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 21:13:31 浏览: 560
(1) 读取数据并输出包含缺失值的行:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('drinks.csv')
# 输出包含缺失值的行
print(df[df.isnull().any(axis=1)])
```
(2) 将continent字段中的NaN全部替换为字符串NA:
```python
import pandas as pd
# 读取数据并替换NaN为NA
df = pd.read_csv('drinks.csv', na_values=['NaN'])
df['continent'].fillna('NA', inplace=True)
# 查看替换结果
print(df.head())
```
(3) 输出各个大洲的平均啤酒、烈酒和红酒的消费量:
```python
import pandas as pd
# 读取数据并替换NaN为NA
df = pd.read_csv('drinks.csv', na_values=['NaN'])
df['continent'].fillna('NA', inplace=True)
# 输出各个大洲的平均消费量
print(df.groupby('continent')[['beer_servings', 'spirit_servings', 'wine_servings']].mean())
```
(4) 输出啤酒、烈酒和红酒消费量最高的国家:
```python
import pandas as pd
# 读取数据并替换NaN为NA
df = pd.read_csv('drinks.csv', na_values=['NaN'])
df['continent'].fillna('NA', inplace=True)
# 输出啤酒、烈酒和红酒消费量最高的国家
print('Beer:', df.loc[df['beer_servings'].idxmax()]['country'])
print('Spirit:', df.loc[df['spirit_servings'].idxmax()]['country'])
print('Wine:', df.loc[df['wine_servings'].idxmax()]['country'])
```
阅读全文