如何根据列索引将字符串 True / False Pandas 列转换为 int?

How to convert string True / False Pandas columns to int based on column index?

我有一个非常大的数据框,其中只有前两列不是布尔值。但是,由于来源,所有内容都以字符串形式引入。 True/False 字段确实也包含实际的空白(不是 nan),并且拼写为 'True' 和 'False'

我正在尝试想出一种动态的方式来执行此操作,而无需输入或列出每一列。

  ndf.iloc[:,2:].astype(bool)

这似乎至少 运行 并将其更改为 bool,但是当我添加 'inplace=True' 时,它对存储 属性 类型没有任何影响。我也试过下面的代码但没有成功。它 运行s 但实际上并没有做任何我能告诉的事情。

  ndf.iloc[:,2:] = ndf.iloc[:,2:].astype(bool) 

我需要能够将这个 table 最终作为 0 和 1 写回数据库。我不是最精通 bools 的人,我希望有一种我还不知道的简单的线性方法来做到这一点。

实际上

ndf.iloc[:,2:] = ndf.iloc[:,2:].astype(bool) 

应该可以工作并将您的数据从 str/object 更改为 bool。只是您使用 'True'True 得到相同的打印结果。检查 ndf.dtypes 以查看该命令后的更改。

如果您想要 01 的布尔值,请尝试:

ndf.iloc[:,2:] = ndf.iloc[:,2:].astype(bool).astype(int)