import pandas as pd
import numpy as np
# 原始文件路径
input_file_path = 'E:\\2000-2018excel\\黄河流域2000-2020.xlsx'
# 输出文件路径
output_file_path = 'E:\\processed_data.xlsx'
# 使用ExcelWriter创建一个新的Excel文件
with pd.ExcelWriter(output_file_path, engine='xlsxwriter') as writer:
# 遍历年份
for year in range(2000, 2021):
sheet_name = str(year)
try:
# 读取原始工作表
df = pd.read_excel(input_file_path, sheet_name=sheet_name)
# 将缺测值32766替换为NaN
df.replace(32766, np.nan, inplace=True)
# 假设“20-20时降水量”是我们要进行插值的列
if '20-20时降水量' in df.columns:
# 对“20-20时降水量”列进行线性插值
df['20-20时降水量'].interpolate(method='linear', inplace=True, limit_direction='both')
# 将处理后的DataFrame写入新的工作表
df.to_excel(writer, sheet_name=sheet_name, index=False) # 假设你不需要索引
else:
print(f"Sheet {sheet_name} does not contain column '20-20时降水量'")
except Exception as e:
print(f"Error reading or writing sheet {sheet_name}: {e}")
# 处理完成后,Excel文件将包含所有处理过的工作表,每个工作表都以其对应的年份命名
代码记录——日降水站点数据缺测进行线性插值
最新推荐文章于 2024-09-29 14:13:49 发布