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

处理CTD数据时遇KeyError:'SALINITY;PSU'不在索引中

处理CTD数据时的KeyError问题:'SALINITY;PSU'列不存在报错

我编写的CTD数据处理代码原本运行正常,但在处理盐度列时触发如下错误:
KeyError: "['SALINITY;PSU'] not in index"
已确认CSV文件中存在该列,但执行代码时仍报错,且其他列可正常处理。相关代码及报错回溯信息如下:

读取数据代码

df = pd.read_csv('/home/labdino/PycharmProjects/CTDprocessing/venv/DadosCTD_tabulacao.csv',
                 sep='\t',
                 skiprows=header,
                 )
down, up = df.split()

数据处理代码

down = down[["TEMPERATURE;C", "SALINITY;PSU"]]

process = (down.remove_above_water()
           .remove_up_to(idx=7)
           .despike(n1=2, n2=20, block=100)
           .lp_filter()
           .press_check()
           .interpolate()
           .bindata(delta=1, method="average")
           .smooth(window_len=21, window="hanning")
           )

process.head()

报错回溯信息

Traceback (most recent call last):
  File "/home/labdino/PycharmProjects/CTDprocessing/venv/CTDLab.py", line 47, in <module>
    down = down[["TEMPERATURE;C", "SALINITY;PSU"]]
  File "/home/labdino/.local/lib/python3.10/site-packages/pandas/core/frame.py", line 3811, in __getitem__
    indexer = self.columns._get_indexer_strict(key, "columns")[1]
  File "/home/labdino/.local/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 6108, in _get_indexer_strict
    self._raise_if_missing(keyarr, indexer, axis_name)
  File "/home/labdino/.local/lib/python3.10/site-packages/pandas/core/indexes/base.py", line 6171, in _raise_if_missing
    raise KeyError(f"{not_found} not in index")
KeyError: "['SALINITY;PSU'] not in index"

排查方向与解决办法

  • 清理列名隐藏字符:CSV列名可能带有空格、制表符等不可见字符,和代码中的字符串不匹配。先打印实际列名确认:

    print(down.columns.tolist())
    

    或者直接清理所有列名的前后空白:

    down.columns = down.columns.str.strip()
    
  • 检查split()方法的拆分结果:你调用的split()(CTD处理库的方法)可能未将SALINITY;PSU列包含到down数据框中。打印down.columns确认该列是否被分到up里,或是拆分时丢失。

  • 验证CSV读取参数:确认skiprows=header的取值是否正确,错误的参数可能导致列名被当作数据行读取,或是未正确识别表头。可以先注释掉skiprows参数,打印df.columns检查原始数据的列名是否正确。

  • 核对列名完全匹配:确认CSV中的列名和代码中的字符串完全一致,包括大小写(如Salinity;PSU vs SALINITY;PSU)、符号(如分号是否正确)等细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:55:33