df = df[[‘A型号’,‘B型号’,‘C型号’,‘D型号’,‘E型号’]] # 选取’A型号’,‘B型号’,‘C型号’,‘D型号’,'E型号’列的数据用于数据分析
df_melt = df.melt() # 将列名转换为列数据,重构DataFrame
df_melt.columns = [‘Treat’, ‘Value’] # 重命名列
df_describe = pd.DataFrame() # 创建一个空DataFrame用于汇总数据
df_describe[‘A型号’] = df[‘A型号’].describe() # 计算“A型号”轮胎的刹车距离的平均值、最大值和最小值等
df_describe[‘B型号’] = df[‘B型号’].describe() # 计算“B型号”轮胎的刹车距离的平均值、最大值和最小值等
df_describe[‘C型号’] = df[‘C型号’].describe() # 计算“C型号”轮胎的刹车距离的平均值、最大值和最小值等
df_describe[‘D型号’] = df[‘D型号’].describe() # 计算“D型号”轮胎的刹车距离的平均值、最大值和最小值等
df_describe[‘E型号’] = df[‘E型号’].describe() # 计算“E型号”轮胎的刹车距离的平均值、最大值和最小值等
model = ols(‘Value~C(Treat)’, data = df_melt).fit() # 对样本数据进行最小二乘线性拟合计算
anova_table = anova_lm(model, typ = 3) # 对样本数据进行方差分析
app = xw.App(visible = False) # 启动Excel程序
workbook = app.books.open(‘方差分析.xlsx’) # 打开要写入分析结果的工作簿
worksheet = workbook.sheets[‘单因素方差分析’] # 选中工作表“单因素方差分析”
worksheet.range(‘H2’).value = df_describe.T # 将计算出的平均值】最大值和最小值等数据转置行列并写入工作表
worksheet.range(‘H14’).value = ‘方差分析’ # 在工作表中写入“方差分析”文本
worksheet.range(‘H15’).value = anova_table # 将方差分析的结果写入工作表
workbook.save() # 保存工作簿
workbook.close() # 关闭工作簿
app.quit() # 退出Excel程序
运行结果:
2、绘制箱形图识别异常值
实例代码:
import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw
df = pd.read_excel(‘方差分析.xlsx’)
df = df[[‘A型号’, ‘B型号’, ‘C型号’, ‘D型号’, ‘E型号’]]
figure = plt.figure() # 创建绘图窗口
plt.rcParams[‘font.sans-serif’] = [‘SimHei’] # 解决中文乱码问题
df.boxp