怎么用python导表格多行数据计算多组数据的分数的最高值、最低值、众数、中位数等,并绘制图
时间: 2024-03-19 17:44:06 浏览: 19
和导入单行数据相比,导入多行数据需要使用pandas库的更多功能来处理。可以使用pandas库的read_csv函数来导入包含多行数据的表格文件,然后使用groupby函数将数据按照不同的分组方式进行分组,再对每组数据进行统计计算。
下面是一个示例代码,假设我们要处理的表格数据保存在名为data.csv的文件中,其中包括多组数据的分数和姓名:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 导入表格数据
data = pd.read_csv('data.csv')
# 按照姓名进行分组
groups = data.groupby('姓名')
# 计算每组数据的最高值、最低值、众数、中位数
max_scores = groups['分数'].max()
min_scores = groups['分数'].min()
mode_scores = groups['分数'].agg(pd.Series.mode)
median_scores = groups['分数'].median()
# 绘制分数分布箱线图
plt.boxplot([group[1]['分数'] for group in groups])
plt.title('分数分布')
plt.xlabel('姓名')
plt.ylabel('分数')
# 显示统计结果和图表
print('最高分数:\n', max_scores)
print('最低分数:\n', min_scores)
print('众数:\n', mode_scores)
print('中位数:\n', median_scores)
plt.show()
```
这个示例代码中,我们使用pandas库的read_csv函数来导入包含多行数据的表格文件,并使用groupby函数将数据按照姓名进行分组。然后,我们使用max、min、agg和median函数对每组数据进行统计计算,并将结果保存在max_scores、min_scores、mode_scores和median_scores变量中。最后,我们使用matplotlib库的boxplot函数来绘制分数分布箱线图,并使用title、xlabel和ylabel函数来设置图表的标题和坐标轴标签。最后,我们使用print函数来输出统计结果,使用show函数来显示图表。