python循环计算excle中第1列和后面几列的皮尔逊相关系数、RMSE、MSE、MAE,并写入到excel的sheet3中
时间: 2023-05-17 19:05:44 浏览: 155
好的,这个问题可以回答。以下是代码示例:
```python
import pandas as pd
from scipy.stats import pearsonr
from sklearn.metrics import mean_squared_error, mean_absolute_error
# 读取Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 计算皮尔逊相关系数
corr_list = []
for col in df.columns[1:]:
corr, _ = pearsonr(df.iloc[:, 0], df[col])
corr_list.append(corr)
# 计算RMSE、MSE、MAE
rmse_list = []
mse_list = []
mae_list = []
for col in df.columns[1:]:
rmse = mean_squared_error(df.iloc[:, 0], df[col], squared=False)
mse = mean_squared_error(df.iloc[:, 0], df[col])
mae = mean_absolute_error(df.iloc[:, 0], df[col])
rmse_list.append(rmse)
mse_list.append(mse)
mae_list.append(mae)
# 将结果写入Excel的Sheet3中
result_df = pd.DataFrame({'Pearson Correlation': corr_list,
'RMSE': rmse_list,
'MSE': mse_list,
'MAE': mae_list})
result_df.to_excel('data.xlsx', sheet_name='Sheet3', index=False)
```
希望这个代码示例能够帮到你!
阅读全文