我有一个excel,第二列为Y,第三列到最后一列,为x1、x2、……xn,现在要分析第三列到最后一列逐列数据与第二列Y数据的相关性,生成一个新excel,得到R2、p值、截距、斜率(对标excel中的回归分析)。
import pandas as pd
from scipy import stats# 读取 Excel 文件
excel_file = r'D:\1相关性分析数据.xlsx' # 请替换成您的 Excel 文件路径
df = pd.read_excel(excel_file, sheet_name='合并')# 取出数据(Y)
y_data = df.iloc[:, 1]# 创建一个新的 DataFrame 用于存储相关性和线性回归的统计信息
result_df = pd.DataFrame(index=['R2', 'p值', '截距', '斜率'])# 遍历第三列到最后一列的数据
for column in df.columns[2:]:x_data = df[column]slope, intercept, r_value, p_value, std_err = stats.linregress(x_data, y_data)result_df[column] = [r_value**2, p_value, intercept, slope]# 将结果写入新的 Excel 文件
output_excel = r'D:\2相关性分析结果.xlsx' # 请替换成您希望保存的 Excel 文件路径
with pd.ExcelWriter(output_excel) as writer:result_df.to_excel(writer, sheet_name='相关性分析', index=True)print("相关性分析结果已保存到新的 Excel 文件中")