diff --git a/src/gasflux/data_processor.py b/src/gasflux/data_processor.py index 1a60896..d6a01c1 100644 --- a/src/gasflux/data_processor.py +++ b/src/gasflux/data_processor.py @@ -544,17 +544,17 @@ def calculate_pressure(df, max_samples=None, height_tolerance=10.0, height_bin_s df['pressure'] = None # 初始化 df.loc[sample_df.index, 'pressure'] = pressures - # 对于未计算的行,使用插值或平均值填充 - if max_samples is not None and len(df) > max_samples: - # 只计算了部分行,用平均值填充其余行 - valid_pressures_for_mean = [p for p in pressures if p is not None] - if valid_pressures_for_mean: - mean_pressure = sum(valid_pressures_for_mean) / len(valid_pressures_for_mean) - df['pressure'] = df['pressure'].fillna(mean_pressure) - print(f"使用平均气压填充其余 {len(df) - max_samples} 行: {mean_pressure:.1f} hPa") + # 统计并填充缺失气压值:用已有有效值的平均值填充所有NaN + valid_pressures = [p for p in pressures if p is not None] + nan_count_before = df['pressure'].isna().sum() + + if valid_pressures: + mean_pressure = sum(valid_pressures) / len(valid_pressures) + df['pressure'] = df['pressure'].fillna(mean_pressure) + if nan_count_before > 0: + print(f"使用平均气压 {mean_pressure:.1f} hPa 填充了 {nan_count_before} 行缺失气压值") # 统计信息 - valid_pressures = [p for p in pressures if p is not None] if valid_pressures: avg_pressure = sum(valid_pressures) / len(valid_pressures) print(f"成功计算 {len(valid_pressures)}/{actual_samples} 个气压值,平均值: {avg_pressure:.1f} hPa")