来自this帖子的词干,但我发现该解决方案存在一些问题。
使用df = df.replace({True: 'TRUE', False: 'FALSE'})
,如果值为1
或0
,它将被替换。我只想替换实际上是True
的{{1}}或False
的值。
我该怎么做?
答案 0 :(得分:2)
您可以使用df.where
进行此操作,因此仅替换bool
类型。
import pandas as pd
mask = df.applymap(type) != bool
d = {True: 'TRUE', False: 'FALSE'}
df = df.where(mask, df.replace(d))
df = pd.DataFrame({'vals': [1, 0, 1.0, 'True', True, False],
'ids': [78, 'kitten', True, False, 'orange', 9]})
vals ids
0 1 78
1 0 kitten
2 1 TRUE
3 True FALSE
4 TRUE orange
5 FALSE 9