lesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessinglesson 3 of 6 · dataframe selection and cleaning without guessingdataframe selection and cleaning without guessing
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving. hop to the next when you're ready.
Checkpoint. Build a tiny two-system selector: by_position(rows, i) returns the i-th row; by_label(rows, user) returns the row whose 'user' matches (or None). Then show why labels are sturdier: sort the rows and look marcus up both ways.