You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将化学化验数据集重复行按CHEM_UNIT重排为元素浓度列

化学化验长格式DataFrame转规范宽表实现方案

这个需求属于典型的长表转宽表操作,使用Python Pandas库的透视功能即可快速实现。

前置依赖

需要先导入Pandas库:

import pandas as pd

实现方法

方法1:pivot_table(兼容性最优)

适合可能存在同分组多重复值的场景,可自定义聚合规则处理冲突:

# 定义公共属性列:所有不需要展开、重复值完全一致的字段
public_cols = ['SAMPLE_NO', 'SAMPLE_SOURCE', 'DH_DEPTH_FROM', 'DH_DEPTH_TO', 'LONGITUDE_GDA2020', 'LATITUDE_GDA2020']

df_standard = pd.pivot_table(
    df, # 替换为你的原始DataFrame变量名
    index=public_cols,
    columns='CHEM_UNIT',
    values='VALUE',
    aggfunc='first' # 同分组多值时取第一个,可根据业务需求替换为'mean'、'sum'等聚合函数
).reset_index()

# 可选操作:清除列名的层级标识
df_standard.columns.name = None

方法2:pivot(轻量高效)

如果确认同一样品同一元素不会有重复检测记录,可直接使用轻量的pivot方法:

public_cols = ['SAMPLE_NO', 'SAMPLE_SOURCE', 'DH_DEPTH_FROM', 'DH_DEPTH_TO', 'LONGITUDE_GDA2020', 'LATITUDE_GDA2020']

df_standard = df.pivot(
    index=public_cols,
    columns='CHEM_UNIT',
    values='VALUE'
).reset_index()

df_standard.columns.name = None

输出效果

处理后的DataFrame将每行对应唯一的样品+属性组合,Au_PPM、Ag_PPM、Zn_PPM等元素浓度会作为独立列存储,完全符合规范要求。

内容的提问来源于stack exchange,提问作者kfob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:00:05