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

如何基于完整传感器列表补全DataFrame中缺失的地址与振幅值

实现方案

核心思路是将每行的地址、振幅先转为键值对映射,再以全量传感器列表ORIG的固定顺序为基准遍历匹配,存在则取对应值,缺失则补0。

完整代码

import pandas as pd

# 定义全量传感器基准列表
ORIG = ['a:1','b:1','c:1','d:1','e:1','f:1']

# 构造示例DataFrame(实际使用时替换成自己的数据源即可)
df = pd.DataFrame({
    'id': [1,2,3],
    'address': [['a:1','b:1','c:1'], ['a:1','c:1','d:1'], ['b:1','d:1','f:1']],
    'amplitudes': [[2,3,5], [2,4,4], [3,4,6]]
})

# 行处理函数:按ORIG顺序补全地址和振幅
def fill_missing(row):
    addr_amp = dict(zip(row['address'], row['amplitudes']))
    filled_addr = []
    filled_amp = []
    for addr in ORIG:
        filled_addr.append(addr if addr in addr_amp else 0)
        filled_amp.append(addr_amp.get(addr, 0))
    return pd.Series([filled_addr, filled_amp])

# 应用函数覆盖原列
df[['address', 'amplitudes']] = df.apply(fill_missing, axis=1)

# 输出查看结果
print(df)

方案说明

  1. 用dict(zip(row['address'], row['amplitudes']))把每行零散的地址和振幅配对成字典,方便后续快速查找
  2. 严格按照ORIG的顺序遍历生成补全后的列表,保证所有行的address、amplitudes顺序完全一致,符合后续计算向量距离的要求
  3. 不需要提前查找缺失项,直接全量匹配即可,不管缺失多少个地址都能自动补全,后续如果ORIG列表有更新,直接修改基准列表即可,通用性更强

内容的提问来源于stack exchange,提问作者Serge de Gosson de Varennes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:24:04