python在excel统计各国的奖牌数及奖牌数前20名的国家以及⾦牌牌数前10名的国家
时间: 2024-04-28 22:27:16 浏览: 18
可以使用 `pandas` 库来完成这个任务。首先需要先安装这个库。
在统计过程中,需要用到的数据是奥运会历届奖牌榜的数据,可以从网络上下载到 `Medals.xlsx` 文件。然后可以使用以下代码来读取数据并统计各国的奖牌数:
```python
import pandas as pd
# 读取数据
df = pd.read_excel('Medals.xlsx', sheet_name='Medals', skiprows=4)
# 统计各国的奖牌数
medal_counts = df.groupby('NOC')['Medal'].count()
```
接下来可以使用以下代码来统计奖牌数前20名的国家和金牌数前10名的国家:
```python
# 奖牌数前20名的国家
top20 = medal_counts.sort_values(ascending=False)[:20]
# 金牌数前10名的国家
gold_top10 = df[df['Medal'] == 'Gold'].groupby('NOC')['Medal'].count().sort_values(ascending=False)[:10]
```
最后可以将统计结果写入到一个新的 Excel 文件中:
```python
# 创建 Excel 文件
writer = pd.ExcelWriter('Medal Counts.xlsx')
# 写入各国的奖牌数
medal_counts.to_frame(name='Medal Count').to_excel(writer, sheet_name='Medal Counts')
# 写入奖牌数前20名的国家
top20.to_frame(name='Medal Count').to_excel(writer, sheet_name='Top 20 Countries')
# 写入金牌数前10名的国家
gold_top10.to_frame(name='Gold Count').to_excel(writer, sheet_name='Gold Top 10 Countries')
# 保存 Excel 文件
writer.save()
```
这段代码会创建一个名为 `Medal Counts.xlsx` 的 Excel 文件,并将各国的奖牌数、奖牌数前20名的国家以及金牌数前10名的国家分别写入到三个工作表中。