fix(step9): 保留原始坐标列至 final_concentrations.csv,防止 Step14 崩溃
This commit is contained in:
@ -622,6 +622,11 @@ class ConcentrationPipeline:
|
||||
if "bb_lambda" not in df.columns:
|
||||
df["bb_lambda"] = np.nan
|
||||
|
||||
# ── 保留原始坐标列:按 sample_id 取第一条记录的非光谱列 ───────────
|
||||
wl_col = "Wavelength"
|
||||
coord_meta_cols = [c for c in df.columns if c not in (sample_id_col, wl_col, "a_lambda", "bb_lambda")]
|
||||
coord_df = df.groupby(sample_id_col, sort=False)[coord_meta_cols].first().reset_index()
|
||||
|
||||
df = df.sort_values([sample_id_col, "Wavelength"])
|
||||
|
||||
results = []
|
||||
@ -657,6 +662,9 @@ class ConcentrationPipeline:
|
||||
results.append(row)
|
||||
|
||||
out_df = pd.DataFrame(results)
|
||||
# ── 将原始坐标列按 sample_id 合并到浓度结果左侧 ───────────────────
|
||||
if not coord_df.empty and sample_id_col in coord_df.columns:
|
||||
out_df = coord_df.merge(out_df, on=sample_id_col, how="left")
|
||||
os.makedirs(os.path.dirname(output_csv) or ".", exist_ok=True)
|
||||
out_df.to_csv(output_csv, index=False, float_format="%.6f")
|
||||
return output_csv
|
||||
Reference in New Issue
Block a user