将0和1(float64)转换为布尔值时,将空值转换为True

时间:2020-08-07 00:03:46

标签: python excel pandas jupyter-notebook

我正在处理从Excel文件导入Jupyter笔记本的数据集。原始文件的列中包含True和False值。当转换为数据帧时,这些值将转换为float64类型的0和1。该列也缺少一些值。

我尝试使用将它们转换回布尔类型

.astype('bool')

很奇怪,我发现丢失的数据已转换为True。

为什么会这样??

我尝试通过仅选择notnull()值来避免这种情况,但是类型更改为Object not boolean

1 个答案:

答案 0 :(得分:0)

这是因为所有内容评估为 True ,而空字符串评估为 False 。例如,您可以尝试以下操作:

File <path, including fragment> does not exist

然后,您可以使用Expected scheme-specific part at index 5正确切换值:

List= ['True','False','False','False']
df= pd.DataFrame(List)

在您的情况下,您具有nan值。因此:

map

输出:

df= df[0].map({'False':False, 'True':True})