【发布时间】:2018-11-20 03:56:31
【问题描述】:
我有一个数据框,其中包含 x 和 v 之类的复选标记,我将用以下行替换为布尔值:
df.replace({'v': True, 'x': False}, inplace=True)
在运行df.replace() 之前,根据df.dtypes 的所有列的类型是object。在replace() 之后,所有其他列仍然是object,除了一个布尔类型的列,其中的值是numpy.bool_ 类型。 Pycharm 以红色背景显示该特定列,表示 True 值,如下所示。
为什么会发生这种情况? object 不适合存储布尔值吗?为什么pandas 将这一列的dtype 从object 更改为bool?究竟是什么控制它,我如何强制将 dtype 保持为object?
是否有理由将所有列改为pandas.np.bool,例如出于性能原因?
【问题讨论】: