根据下图中的数据,完成以下要求: (1)使用DataFrame创建学生信息数据。 (2)按年级分组,统计每个年级的人数,并画出人数百分占比的饼图 (3)统计每个年级的平均体重,并以此画出柱状图
时间: 2024-03-22 10:36:58 浏览: 214
DataFrame创建数据
5星 · 资源好评率100%
首先需要导入Pandas和Matplotlib库:
```python
import pandas as pd
import matplotlib.pyplot as plt
```
然后根据给出的数据创建DataFrame:
```python
data = {'姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '郑十', '吴十一', '郭十二'],
'年级': [1, 2, 1, 3, 2, 3, 1, 2, 3, 1],
'性别': ['男', '女', '男', '女', '男', '女', '男', '女', '男', '女'],
'体重': [68, 52, 75, 61, 70, 56, 72, 63, 80, 69]}
df = pd.DataFrame(data)
```
接下来,按年级分组,统计每个年级的人数,并画出人数百分占比的饼图:
```python
grouped = df.groupby('年级')
grade_count = grouped.size()
labels = ['一年级', '二年级', '三年级']
colors = ['yellowgreen', 'gold', 'lightskyblue']
explode = (0, 0.1, 0)
plt.pie(grade_count, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.title('各年级人数占比')
plt.show()
```
最后,统计每个年级的平均体重,并以此画出柱状图:
```python
grade_weight = grouped['体重'].mean()
plt.bar(grade_weight.index, grade_weight.values)
plt.title('各年级平均体重')
plt.xlabel('年级')
plt.ylabel('体重')
plt.show()
```
完整代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
data = {'姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '郑十', '吴十一', '郭十二'],
'年级': [1, 2, 1, 3, 2, 3, 1, 2, 3, 1],
'性别': ['男', '女', '男', '女', '男', '女', '男', '女', '男', '女'],
'体重': [68, 52, 75, 61, 70, 56, 72, 63, 80, 69]}
df = pd.DataFrame(data)
grouped = df.groupby('年级')
grade_count = grouped.size()
labels = ['一年级', '二年级', '三年级']
colors = ['yellowgreen', 'gold', 'lightskyblue']
explode = (0, 0.1, 0)
plt.pie(grade_count, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.title('各年级人数占比')
plt.show()
grade_weight = grouped['体重'].mean()
plt.bar(grade_weight.index, grade_weight.values)
plt.title('各年级平均体重')
plt.xlabel('年级')
plt.ylabel('体重')
plt.show()
```
阅读全文