【发布时间】:2021-03-06 04:21:42
【问题描述】:
我有一个数据框,其中包含一个 0 和 1 的热编码列,其 dtype 为 int32。
a b h1 h2 h3
xy za 0 0 1
ab cd 1 0 0
pq rs 0 1 0
我想将列 h1、h2 和 h3 转换为布尔值,所以这就是我所做的......
df[df.columns[2:]].astype(bool)
但这将 h1-h3 的所有值更改为 TRUE。
我也试过
df[df.columns[2:]].map({0:False, 1:True})
但这也不起作用。 (AttributeError: 'DataFrame' 对象没有属性 'map')
将数据帧的特定列从 int32 0 和 1 转换为布尔值 (True/False) 的最佳方法是什么?
【问题讨论】:
-
请provide the code生成数据框。
-
@MayankPorwal - 是的,如果不是第一列或第二列整数,那么就是欺骗,否则不是。
-
主要逻辑是骗人的。您可以告诉 OP 分别选择带有
iloc的前两列。