import pandas as pd
import os
# 指定源文件夹路径
source_folder = r'E:\satlite\MSWEP\inter\302站点分年\301站点年和'
# 指定输出Excel文件的路径
output_file = r'E:\2000-2018excel\MSWEP年均.xlsx'
# 指定要计算平均值的列名
column_name = 'precipitation_bilinear'
# 创建一个空的DataFrame来存储平均值,将文件名作为索引
averages_df = pd.DataFrame(index=[])
# 遍历文件夹中的所有文件
for filename in os.listdir(source_folder):
if filename.endswith('.xlsx'): # 确保只处理Excel文件
file_path = os.path.join(source_folder, filename)
# 使用pandas读取Excel文件
try:
df = pd.read_excel(file_path)
# 检查列名是否存在
if column_name in df.columns:
# 计算指定列的平均值
average_value = df[column_name].mean()
# 将文件名和平均值添加到DataFrame中
averages_df.loc[filename.replace('.xlsx', ''), 'Average'] = average_value
else:
print(f"Column '{column_name}' not found in '{filename}'.")
except Exception as e:
print(f"Error processing '{filename}': {e}")
# 如果DataFrame不为空,则将其写入到新的Excel文件中
if not averages_df.empty:
# 写入Excel文件,不包含索引(如果需要包含索引,请移除index=False)
with pd.ExcelWriter(output_file, engine='openpyxl', mode='w') as writer:
averages_df.to_excel(writer, sheet_name='Averages', index_label='Filename', index=True)
# 注意:确保'path_to_source_excel_files'和'path_to_output_folder/averages.xlsx'被替换为实际的路径
# 并且'YourColumnName'被替换为你想要计算平均值的列的实际名称
代码记录——批量求excel指定列的均值
最新推荐文章于 2024-09-06 08:42:20 发布