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

Pandas提取两列差异值时出现Series不可哈希错误如何解决

报错原因

drop_duplicates方法的subset参数要求传入列名或者列名组成的列表,你传入了两个Series对象作为参数,Series属于可变对象,无法被哈希用于子集判断,同时drop_duplicates本身是数据去重方法,和你需要的按条件筛选赋值的需求逻辑完全不匹配。

正确实现方式

你的需求本质是:第53列的取值规则为,当第51列的值为负数时保留原值,非负数时替换为0,可以用以下几种方法实现:

  • 方法1:使用numpy.where实现(最简洁)
import numpy as np
df.loc[:, 53] = np.where(df.loc[:, 51] < 0, df.loc[:, 51], 0)
  • 方法2:使用pandas自带的Series.where方法,无需额外导入依赖
df.loc[:, 53] = df.loc[:, 51].where(df.loc[:, 51] < 0, 0)
  • 方法3:使用布尔索引分步赋值
# 先初始化第53列全为0
df.loc[:, 53] = 0
# 将第51列中为负数的位置对应值赋值到第53列
mask = df.loc[:, 51] < 0
df.loc[mask, 53] = df.loc[mask, 51]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:51:04