Anpassa importer: sant/falskt-data

Effektiv datainläsning med pandas

Amany Mahfouz

Instructor

Booleska data

  • True/False-data

Kalkylblad med enkätdata och flera sant/falskt-kolumner

Effektiv datainläsning med pandas

Booleska data

Kalkylblad med enkätdata där kolumner om bootcamp-deltagande är markerade

Effektiv datainläsning med pandas

Booleska data

Kalkylblad med enkätdata där kolumner om låneanvändning är markerade

Effektiv datainläsning med pandas

Booleska data

Kalkylblad med enkätdata och flera True/False-kolumner

Effektiv datainläsning med pandas

Booleska data

Kalkylblad med enkätdata där kolumner med nollor och ettor är markerade

Effektiv datainläsning med pandas

Booleska data

Kalkylblad med enkätdata där kolumner med True och False är markerade

Effektiv datainläsning med pandas

Booleska data

Kalkylblad med enkätdata där kolumner med ja och nej är markerade

Effektiv datainläsning med pandas

pandas och booleska värden

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
Effektiv datainläsning med pandas

pandas och booleska värden

# 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
Effektiv datainläsning med 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
Effektiv datainläsning med 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
Effektiv datainläsning med pandas

pandas och booleska värden

  • pandas läser in True/False-kolumner som flyttalsdata som standard
  • Ange att en kolumn ska vara bool med dtype-argumentet i read_excel()
  • Booleska kolumner kan bara innehålla True och False
  • NA/saknade värden i booleska kolumner ändras till True
  • pandas känner automatiskt igen vissa värden som True/False i booleska kolumner
  • Okända värden i en boolesk kolumn ändras också till True
Effektiv datainläsning med pandas

Ange egna True/False-värden

  • Använd true_values-argumentet i read_excel() för att ange egna True-värden
  • Använd false_values för att ange egna False-värden
  • Vardera tar en lista med värden som ska tolkas som True respektive False
  • Egna True/False-värden gäller bara kolumner som angetts som booleska
Effektiv datainläsning med pandas

Ange egna True/False-värden

# 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"])
Effektiv datainläsning med pandas

Ange egna True/False-värden

print(bool_data.sum())
AttendedBootcamp                                  38
AttendedBootCampYesNo                             38
AttendedBootcampTF                                38
BootcampLoan                                     978
LoanYesNo                                        978
LoanTF                                           978
dtype: object
Effektiv datainläsning med pandas

Att tänka på med booleska data

  • Finns det saknade värden, eller kan det uppstå sådana framöver?
  • Hur ska kolumnen användas i analysen?
  • Vad händer om ett värde felaktigt kodas som True?
  • Kan data modelleras på annat sätt (t.ex. som flyttal eller heltal)?
Effektiv datainläsning med pandas

Nu kör vi en övning!

Effektiv datainläsning med pandas

Preparing Video For Download...