python在excel统计各国个⼈⾦牌前五名的⼈
时间: 2023-10-18 15:00:35 浏览: 46
同样可以使用 `pandas` 库来完成这个任务。需要先下载奥运会历届奖牌榜的数据(可以从网络上下载到 `Medals.xlsx` 文件),然后使用以下代码来读取数据并统计各国个人金牌前五名的人:
```python
import pandas as pd
# 读取数据
df = pd.read_excel('Medals.xlsx', sheet_name='Medals', skiprows=4)
# 筛选出金牌获得者
gold_medalists = df[df['Medal'] == 'Gold']
# 按照国家和运动员分组并统计金牌数
gold_medals_by_athlete = gold_medalists.groupby(['NOC', 'Athlete'])['Medal'].count().reset_index(name='Gold Medals')
# 按照国家分组并筛选出个人金牌前五名
top5_athletes_by_country = gold_medals_by_athlete.groupby('NOC').apply(lambda x: x.nlargest(5, 'Gold Medals')).reset_index(drop=True)
# 输出统计结果
print(top5_athletes_by_country[['NOC', 'Athlete', 'Gold Medals']])
```
上述代码会首先筛选出所有获得金牌的运动员,然后按照国家和运动员进行分组,并统计金牌数量。接着,按照国家进行分组,并筛选出个人金牌前五名。最后,输出各国个人金牌前五名的姓名和金牌数量。
如果需要将结果保存到 Excel 文件中,可以使用以下代码:
```python
# 创建 Excel 文件
writer = pd.ExcelWriter('Top 5 Athletes by Country.xlsx')
# 写入数据
top5_athletes_by_country[['NOC', 'Athlete', 'Gold Medals']].to_excel(writer, sheet_name='Top 5 Athletes by Country', index=False)
# 保存 Excel 文件
writer.save()
```
这段代码会创建一个名为 `Top 5 Athletes by Country.xlsx` 的 Excel 文件,并将各国个人金牌前五名的姓名和金牌数量写入到一个工作表中。