Excel表格有三列,一列是国家名,一列是年份,一列是人口数量,使用pandas去获取数据。要绘制总人口最多的十位国家和总人口最少的十位国家柱形图
时间: 2024-03-25 07:39:21 浏览: 38
Pandas实现一列数据分隔为两列
好的,以下是使用 Pandas 绘制柱形图的示例代码:
``` python
import pandas as pd
import matplotlib.pyplot as plt
# 读取 Excel 表格
data = pd.read_excel('example.xlsx')
# 按国家进行分组,计算每个国家的总人口
grouped = data.groupby('国家名')['人口数量'].sum().reset_index()
# 按总人口数量进行排序,获取总人口最多的十个国家和总人口最少的十个国家
top10 = grouped.sort_values('人口数量', ascending=False).head(10)
bottom10 = grouped.sort_values('人口数量', ascending=True).head(10)
# 绘制柱形图
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8, 10))
ax1.bar(top10['国家名'], top10['人口数量'], color='green')
ax1.set_title('总人口最多的十位国家')
ax2.bar(bottom10['国家名'], bottom10['人口数量'], color='red')
ax2.set_title('总人口最少的十位国家')
plt.tight_layout()
plt.show()
```
请将示例代码中的 `example.xlsx` 替换为您自己的 Excel 文件名,并根据实际需求修改代码中的列名。
阅读全文