我正在尝试将字符串“ TRUE”和“ FALSE”的数据框中的列转换为布尔值。对于其他数据类型,我只使用了astype,没有任何问题,但是由于某种原因,在此列上使用它会将所有值转换为True。
我已经对字符串列表重复了如下测试
test = ['False','False','True']
test = pd.DataFrame(test)
test = test.astype('bool')
但是它给出了相同的结果,这是怎么回事,以及如何正确转换数据类型?我尝试使用map和replace在转换前更改值,但都没有更改结果。
答案 0 :(得分:0)
有问题strings values are converted to Trues。
解决方案:
test = ['False','False','True']
test = pd.DataFrame(test)
test = test[0].map({'False':False, 'True':True})
print (test)
0 False
1 False
2 True
Name: 0, dtype: bool
或者:
import ast
test = test[0].map(ast.literal_eval)
print (test)
0 False
1 False
2 True
Name: 0, dtype: bool
答案 1 :(得分:0)
这是一种明确的方法,
test=test[0]=='True'
O / P:
0 False
1 False
2 True
Name: 0, dtype: bool
bool