import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
读取Excel文件
file_path = '9.3.xlsx'
data = pd.read_excel(file_path, header=0)
定义实验室名称列表
labs = ['Lab1', 'Lab2', 'Lab3', 'Lab4', 'Lab5', 'Lab6', 'Lab7']
确保Excel文件中的列名与实验室名称匹配
assert all(lab in data.columns for lab in labs), "Excel文件中的列名与实验室名称不匹配"
绘制箱线图
plt.figure(figsize=(12, 8))
sns.boxplot(data=data)
plt.xticks(rotation=45)
plt.title('Boxplot of Chlorpheniramine Content Measurements by Laboratory')
plt.xlabel('Laboratory')
plt.ylabel('Chlorpheniramine Content (mg)')
plt.show()
进行单因素方差分析
f_stat, p_value = stats.f_oneway(data['Lab1'], data['Lab2'], data['Lab3'], data['Lab4'], data['Lab5'], data['Lab6'], data['Lab7'])
打印F统计量和P值
print(f"F-statistic: {f_stat}")
print(f"P-value: {p_value}")
设置显著性水平
alpha = 0.05
判断各实验室测量的扑尔敏有效含量的均值是否有显著差异
if p_value < alpha:
print("在显著水平 α=0.05 下,各实验室测量的扑尔敏有效含量的均值有显著差异。")
else:
print("在显著水平 α=0.05 下,各实验室测量的扑尔敏有效含量的均值没有显著差异。")
打印学号后两位
print("学号: 08")
结果如下图所示: