TypeError:无法比较类型'ndarray(dtype = bool)'和'str'

时间:2019-12-27 18:17:59

标签: python pandas

我有这个熊猫DataFrame max

df

我想用 Col1 Col2 Col0 True False False False False False False True False False True False False False False 代替False,用No代替True

Yes

但是出现以下错误:

bool_to_str = {'False': 'No', 'True': 'Si'}
df.replace({
        'Col1': bool_to_str,
        'Col2': bool_to_str
    }, inplace=True)


df.dtypes:

Col1   bool
Col2   bool
dtype: object

我检查了TypeError: Cannot compare types 'ndarray(dtype=bool)' and 'str' 的所有列均不包含数组,仅包含布尔值-例如,df返回df["Col1"].values[0]

1 个答案:

答案 0 :(得分:2)

bool_to_str字典的键不是布尔值,而是字符串。您应该将字典定义为:

bool_to_str = {False: 'No', True: 'Si'}

例如:

>>> df
    Col1   Col2
0  False  False
1  False  False
2   True  False
3   True  False
4  False  False
>>> df.replace({'Col1': {False: 'No', True: 'Si'}})
  Col1   Col2
0   No  False
1   No  False
2   Si  False
3   Si  False
4   No  False