给定一个时间内某段各个国家的酒类消费数据表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 22:14:13 浏览: 106
(1)读取数据并输出包含缺失值的行:
```python
import pandas as pd
df = pd.read_csv("drinks.csv")
print(df[df.isnull().any(axis=1)])
```
输出结果为包含缺失值的行。
(2)将continent字段中的NaN全部替换为字符串NA:
```python
df = pd.read_csv("drinks.csv", na_values="")
df["Continent"].fillna("NA", inplace=True)
```
这里我们在读取csv文件时将空字符串""识别为缺失值,然后使用fillna函数将缺失值替换为"NA"。
(3)分别输出各个大洲的平均啤酒、烈酒和红酒的消费量:
```python
df.groupby("Continent")[["beer_servings", "spirit_servings", "wine_servings"]].mean()
```
这里使用groupby函数将数据按照大洲进行分组,然后使用mean函数计算每个大洲的平均啤酒、烈酒和红酒的消费量。
(4)分别输出啤酒、烈酒和红酒消费量最高的国家:
```python
print("啤酒消费量最高的国家:", df.loc[df["beer_servings"].idxmax()]["Country"])
print("烈酒消费量最高的国家:", df.loc[df["spirit_servings"].idxmax()]["Country"])
print("红酒消费量最高的国家:", df.loc[df["wine_servings"].idxmax()]["Country"])
```
这里使用idxmax函数找到每种酒的消费量最高的行索引,然后使用loc函数找到对应的国家名称。
阅读全文