Преобразовать логическое значение в строку в DataFrame - PullRequest
0 голосов
/ 14 сентября 2018

Происходит от этого сообщения, но я нашел небольшую проблему с решением.

Используя df = df.replace({True: 'TRUE', False: 'FALSE'}), если значение равно 1 или 0, оно будетзаменены.Я хочу заменить только значения, которые на самом деле True или False из <class 'bool'>.

Как я могу это сделать?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете сделать это с помощью df.where, поэтому вы можете заменить только bool типов.

import pandas as pd

mask = df.applymap(type) != bool
d = {True: 'TRUE', False: 'FALSE'}

df = df.where(mask, df.replace(d))

Ввод:

df = pd.DataFrame({'vals': [1, 0, 1.0, 'True', True, False],
                   'ids': [78, 'kitten', True, False, 'orange', 9]})

Выход:

    vals     ids
0      1      78
1      0  kitten
2      1    TRUE
3   True   FALSE
4   TRUE  orange
5  FALSE       9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...