Как преобразовать логическое значение в строку в pandas dataframe


Вы можете использовать следующий базовый синтаксис для преобразования логического столбца в строковый столбец в DataFrame pandas:

 df[' my_bool_column '] = df[' my_bool_column ']. replace ({ True : ' True ', False : ' False '})

В этом конкретном примере каждое значение True заменяется строкой «True», а каждое значение False — строкой «False» в столбце с именем my_bool_column .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: преобразование логического значения в строку в Pandas

Предположим, у нас есть следующий DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                   ' points ': [18,20, 25, 40, 34, 32, 19],
                   ' all_star ': [True, False, True, True, True, False, False],
                   ' starter ': [False, True, True, True, False, False, False]})

#view DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

Мы можем использовать функцию dtypes для проверки типа данных каждого столбца в DataFrame:

 #view data type of each column
print ( df.dtypes )

team object
int64 dots
all_star bool
starter bool
dtype:object

Из результата мы видим, что столбцы all_star и starter являются логическими.

Мы можем использовать следующий синтаксис для преобразования столбца all_star в строковый столбец:

 #convert Boolean values in all_star column to strings
df[' all_star '] = df[' all_star ']. replace ({ True : ' True ', False : ' False '})

#view updated DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

#view updated data types of each column
print ( df.dtypes )

team object
int64 dots
all_star object
starter bool
dtype:object

Из результата мы видим, что столбец all_star был преобразован в строковый столбец.

Чтобы преобразовать столбцы all_star и starter из логических значений в строки, мы можем использовать следующий синтаксис:

 #convert Boolean values in all_star and starter columns to strings
df[[' all_star ', ' starter ']] = df[[' all_star ', ' starter ']]. replace ({ True : ' True ', False : ' False '})

#view updated DataFrame
print (df)

  team points all_star starter
0 A 18 True False
1 B 20 False True
2 C 25 True True
3 D 40 True True
4 E 34 True False
5 F 32 False False
6 G 19 False False

#view updated data types of each column
print ( df.dtypes )

team object
int64 dots
all_star object
starter object
dtype:object

Из результата мы видим, что оба логических столбца были преобразованы в строки.

Примечание. Полную документацию по функции pandas replace() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Pandas: выберите строки из DataFrame, используя логический ряд
Pandas: как создать логический столбец на основе условия
Pandas: Как преобразовать логические значения в целочисленные значения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *