fix(step9): 保留原始坐标列至 final_concentrations.csv,防止 Step14 崩溃
This commit is contained in:
@ -622,6 +622,11 @@ class ConcentrationPipeline:
|
|||||||
if "bb_lambda" not in df.columns:
|
if "bb_lambda" not in df.columns:
|
||||||
df["bb_lambda"] = np.nan
|
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"])
|
df = df.sort_values([sample_id_col, "Wavelength"])
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
@ -657,6 +662,9 @@ class ConcentrationPipeline:
|
|||||||
results.append(row)
|
results.append(row)
|
||||||
|
|
||||||
out_df = pd.DataFrame(results)
|
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)
|
os.makedirs(os.path.dirname(output_csv) or ".", exist_ok=True)
|
||||||
out_df.to_csv(output_csv, index=False, float_format="%.6f")
|
out_df.to_csv(output_csv, index=False, float_format="%.6f")
|
||||||
return output_csv
|
return output_csv
|
||||||
Reference in New Issue
Block a user