我有这个熊猫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]
。
答案 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