Изменение импорта: данные типа true/false

Эффективный импорт данных с pandas

Amany Mahfouz

Instructor

Булевы данные

  • Данные True/False

Таблица опроса с несколькими столбцами типа true/false

Эффективный импорт данных с pandas

Булевы данные

Таблица опроса с выделенными столбцами о посещении буткемпа

Эффективный импорт данных с pandas

Булевы данные

Таблица опроса с выделенными столбцами о кредите на обучение

Эффективный импорт данных с pandas

Булевы данные

Таблица опроса с несколькими столбцами True/False

Эффективный импорт данных с pandas

Булевы данные

Таблица опроса с выделенными столбцами, содержащими нули и единицы

Эффективный импорт данных с pandas

Булевы данные

Таблица опроса с выделенными столбцами, содержащими True и False

Эффективный импорт данных с pandas

Булевы данные

Таблица опроса с выделенными столбцами, содержащими yes и no

Эффективный импорт данных с pandas

pandas и булевы значения

bootcamp_data = pd.read_excel("fcc_survey_booleans.xlsx")
print(bootcamp_data.dtypes)
ID.x                      object
AttendedBootcamp         float64
AttendedBootCampYesNo     object
AttendedBootcampTF       float64
BootcampLoan             float64
LoanYesNo                 object
LoanTF                   float64
dtype: object
Эффективный импорт данных с pandas

pandas и булевы значения

# Count True values
print(bootcamp_data.sum())
AttendedBootcamp                      38
AttendedBootcampTF                    38
BootcampLoan                          14
LoanTF                                14
dtype: object
# Count NAs
print(bootcamp_data.isna().sum())
ID.x                           0
AttendedBootcamp               0
AttendedBootCampYesNo          0
AttendedBootcampTF             0
BootcampLoan                 964
LoanYesNo                    964
LoanTF                       964
dtype: int64
Эффективный импорт данных с pandas
# Load data, casting True/False columns as Boolean
bool_data = pd.read_excel("fcc_survey_booleans.xlsx", 
                          dtype={"AttendedBootcamp": bool,
                                "AttendedBootCampYesNo": bool,
                                "AttendedBootcampTF":bool,
                                "BootcampLoan": bool,
                                "LoanYesNo": bool,
                                "LoanTF": bool})

print(bool_data.dtypes)
ID.x                      object
AttendedBootcamp            bool
AttendedBootCampYesNo       bool
AttendedBootcampTF          bool
BootcampLoan                bool
LoanYesNo                   bool
LoanTF                      bool
dtype: object
Эффективный импорт данных с pandas
# Count True values
print(bool_data.sum())
AttendedBootcamp                         38
AttendedBootCampYesNo                  1000
AttendedBootcampTF                       38
BootcampLoan                            978
LoanYesNo                              1000
LoanTF                                  978
dtype: object
# Count NA values
print(bool_data.isna().sum())
ID.x                       0
AttendedBootcamp           0
AttendedBootCampYesNo      0
AttendedBootcampTF         0
BootcampLoan               0
LoanYesNo                  0
LoanTF                     0
dtype: int64
Эффективный импорт данных с pandas

pandas и булевы значения

  • По умолчанию pandas загружает столбцы True/False как данные типа float
  • Чтобы указать тип bool, используйте аргумент dtype функции read_excel()
  • Булевы столбцы могут содержать только значения True и False
  • Пропущенные значения (NA) в булевых столбцах заменяются на True
  • pandas автоматически распознаёт некоторые значения как True/False в булевых столбцах
  • Нераспознанные значения в булевом столбце также заменяются на True
Эффективный импорт данных с pandas

Настройка пользовательских значений True/False

  • Используйте аргумент true_values функции read_excel(), чтобы задать пользовательские значения True
  • Используйте false_values, чтобы задать пользовательские значения False
  • Каждый аргумент принимает список значений, которые будут считаться True/False соответственно
  • Пользовательские значения True/False применяются только к столбцам с типом Boolean
Эффективный импорт данных с pandas

Настройка пользовательских значений True/False

# Load data with Boolean dtypes and custom T/F values
bool_data = pd.read_excel("fcc_survey_booleans.xlsx", 
                          dtype={"AttendedBootcamp": bool,
                                "AttendedBootCampYesNo": bool,
                                "AttendedBootcampTF":bool,
                                "BootcampLoan": bool,
                                "LoanYesNo": bool,
                                "LoanTF": bool},
                          true_values=["Yes"],
                          false_values=["No"])
Эффективный импорт данных с pandas

Настройка пользовательских значений True/False

print(bool_data.sum())
AttendedBootcamp                                  38
AttendedBootCampYesNo                             38
AttendedBootcampTF                                38
BootcampLoan                                     978
LoanYesNo                                        978
LoanTF                                           978
dtype: object
Эффективный импорт данных с pandas

Особенности булевых данных

  • Есть ли пропущенные значения или могут ли они появиться в будущем?
  • Как этот столбец будет использоваться в анализе?
  • Что произойдёт, если значение будет ошибочно закодировано как True?
  • Можно ли смоделировать данные иначе (например, как float или integer)?
Эффективный импорт данных с pandas

Давайте потренируемся!

Эффективный импорт данных с pandas

Preparing Video For Download...