修改匯入:True/False 資料

使用 pandas 的精實資料導入

Amany Mahfouz

Instructor

布林資料

  • True/False 資料

含多個 true/false 欄位的問卷試算表

使用 pandas 的精實資料導入

布林資料

強調訓練營出席欄位的問卷試算表

使用 pandas 的精實資料導入

布林資料

強調貸款使用欄位的問卷試算表

使用 pandas 的精實資料導入

布林資料

含多個 True/False 欄位的問卷試算表

使用 pandas 的精實資料導入

布林資料

強調以 0/1 表示的欄位的問卷試算表

使用 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 與布林值

# 計算 True 的個數
print(bootcamp_data.sum())
AttendedBootcamp                      38
AttendedBootcampTF                    38
BootcampLoan                          14
LoanTF                                14
dtype: object
# 計算 NA 數量
print(bootcamp_data.isna().sum())
ID.x                           0
AttendedBootcamp               0
AttendedBootCampYesNo          0
AttendedBootcampTF             0
BootcampLoan                 964
LoanYesNo                    964
LoanTF                       964
dtype: int64
使用 pandas 的精實資料導入
# 載入資料,將 True/False 欄位轉成 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 的精實資料導入
# 計算 True 的個數
print(bool_data.sum())
AttendedBootcamp                         38
AttendedBootCampYesNo                  1000
AttendedBootcampTF                       38
BootcampLoan                            978
LoanYesNo                              1000
LoanTF                                  978
dtype: object
# 計算 NA 數量
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 資料
  • 透過 read_excel()dtype 參數將欄位設為 bool
  • 布林欄位只能包含 TrueFalse
  • 布林欄位中的 NA/遺漏值會被改成 True
  • pandas 會在布林欄位自動辨識部分 True/False
  • 無法辨識的布林欄位值也會被改成 True
使用 pandas 的精實資料導入

自訂 True/False 值

  • 使用 read_excel()true_values 參數自訂 True
  • 使用 false_values 自訂 False
  • 兩者皆接受清單,分別視為 True/False
  • 自訂的 True/False 僅套用到設為布林的欄位
使用 pandas 的精實資料導入

自訂 True/False 值

# 以布林 dtype 與自訂 T/F 值載入資料
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...