Почему .astype ('bool') конвертирует все значения в True? - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь преобразовать столбец в кадре данных строк «ИСТИНА» и «ЛОЖЬ» в логическое значение. Для других типов данных я просто использовал astype и не имел никаких проблем, но по какой-то причине использование его в этом столбце преобразует все значения в True.

Я повторил тест для списка строк следующим образом

test = ['False','False','True']
test = pd.DataFrame(test)
test = test.astype('bool')

Но это дает тот же результат, что здесь происходит и как мне правильно преобразовать тип данных? Я пытался использовать карту и заменить, чтобы изменить значения до преобразования, но ни один не изменил результат.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Один четкий подход сделать это будет,

test=test[0]=='True'

O / P:

0    False
1    False
2     True
Name: 0, dtype: bool
bool
0 голосов
/ 30 августа 2018

Есть проблема значения строк преобразуются в Истины .

Решение:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...