インポートの調整: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 列をブール型として読み込む
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 とブール値

  • pandasTrue/False 列を既定で float として読み込む
  • read_excel()dtype で列を bool に指定する
  • ブール列には TrueFalse のみが入る
  • ブール列の NA/欠損は True に変換される
  • pandas は一部の値を自動で True/False と判定する
  • 判定不可の値も True に変換される
pandasで効率よくデータを取り込む

カスタム True/False の設定

  • read_excel()true_values で独自の True 値を指定
  • false_valuesFalse 値を指定
  • それぞれ、True/False とみなす値のリストを渡す
  • 独自の True/False はブール型に設定した列にのみ適用
pandasで効率よくデータを取り込む

カスタム True/False の設定

# ブール型とカスタム 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 や int)で表現できるか
pandasで効率よくデータを取り込む

Passons à la pratique !

pandasで効率よくデータを取り込む

Preparing Video For Download...