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

pandas生成条件列触发TypeError:str与int无法比较的问题排查

问题分析:Pandas赋值Gesture列触发TypeError错误

问题背景

现有数据集:

Name   Verified   Happy

Gabriel  True      Yes
John     False     No
Daniella True      Yes
Gabriel  False     No
Elena    True      Yes
Gabriel False     Yes

预期输出(新增Gesture列):

Name   Verified   Happy  Gesture

Gabriel  True      Yes    Bye
John     False     No     Bye
Daniella True      Yes    Bye
Gabriel  False     No     Hi
Elena    True      Yes    Bye
Gabriel False     Yes    Bye

规则:当姓名为Gabriel、Verified为False且Happy为No时,Gesture列赋值为Hi,其余情况赋值为Bye。

尝试了两段代码均触发错误:

第一段代码

df['Gesture'] =  np.where(df['Name'].eq('Gabriel') & df['Verified'].eq(False) & 
                 df['Happy'].eq('No'), 'Hi', 'Bye')

第二段代码

df['Gesture'] = ((df['Name'].eq('Gabriel') & (df['Verified'].eq(False) &  (df['Happy'].eq('No'))).map({True:'Hi',False:'Bye'}))

错误信息:

TypeError: '<' not supported between instances of 'str' and 'int'

错误原因

这个错误的核心是数据类型不匹配:

  • Verified列大概率不是布尔类型(True/False),而是字符串类型('True'/'False'),或读取数据时混入了数值类型;
  • 当执行df['Verified'].eq(False)时,Pandas尝试将字符串与布尔值/整数做对比,底层类型转换冲突引发了<运算不支持的错误;
  • 第二段代码还存在语法错误:括号不匹配,map方法调用位置错误,导致布尔序列的逻辑运算未完成就被调用map。

解决方案

1. 先修正数据类型

确保Verified和Happy列的类型符合要求:

# 如果Verified是字符串格式的'True'/'False',转为布尔型
df['Verified'] = df['Verified'].map({'True': True, 'False': False})
# 确保Happy列全为字符串类型,避免数值混入
df['Happy'] = df['Happy'].astype(str)

2. 使用修正后的代码

方案一:numpy.where(第一段代码修正类型后即可运行)

import numpy as np
df['Gesture'] = np.where(
    (df['Name'] == 'Gabriel') & (df['Verified'] == False) & (df['Happy'] == 'No'),
    'Hi',
    'Bye'
)

方案二:Pandas布尔索引赋值(更直观)

# 先给所有行默认赋值为Bye
df['Gesture'] = 'Bye'
# 匹配规则的行单独赋值为Hi
df.loc[
    (df['Name'] == 'Gabriel') & (df['Verified'] == False) & (df['Happy'] == 'No'),
    'Gesture'
] = 'Hi'

方案三:修正第二段代码(修复语法和类型问题)

# 先构造完整的布尔条件
cond = (df['Name'].eq('Gabriel') & df['Verified'].eq(False) & df['Happy'].eq('No'))
# 用map将布尔值转换为指定字符串
df['Gesture'] = cond.map({True: 'Hi', False: 'Bye'})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:48:15