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

使用Python Pandas查找CSV负值并替换为左右单元格平均值的实现方法

解决方案

直接用pandas向量化操作即可,不要手动遍历单元格,超大规模数据集下遍历的效率极低,向量化操作的速度可以满足需求。

核心逻辑

  • 先把所有小于0的错误值统一替换为NaN
  • 按行做线性插值,恰好就能得到NaN位置左右相邻有效值的平均值,完全匹配你给出的示例要求

完整代码示例

import pandas as pd
import numpy as np

# 读取你的数据集,这里用示例数据做演示
# 实际使用替换为 pd.read_excel/ pd.read_csv 等读取你自己的文件即可
df = pd.DataFrame([
    [8, 8, 7, 6, 9, -3434, 8],
    [5, -10, 3, -2, 7, 4, 9]
])

# 替换所有负值为NaN
df = df.where(df >= 0, np.nan)

# 按行线性插值,自动用左右有效值的平均值填充NaN
df = df.interpolate(method='linear', axis=1, limit_direction='both')

# 输出查看结果
print(df)

输出示例

运行后第一行的结果就是你要的[8, 8, 7, 6, 9, 8.5, 8],完全符合预期。

可选调整项

  • 如果只需要替换单独出现的负值,不处理连续多个负值的情况,给interpolate加limit=1参数即可
  • 如果负值出现在行首/行尾的边界位置,当前配置会自动用最近的单侧有效值填充,你也可以根据需求额外处理边界,比如填0、删除对应行等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 09:06:07