#100DaysOfCode in Python Transcripts
Chapter: Days 37-39: Using CSV data
Lecture: Demo: Parsing the CSV file
0:00 We were able to read our file as text,
0:02 and that gets us really close,
0:04 but it doesn't really let us work with it.
0:05 And now, technically, we could do,
0:07 like a crazy bunch of string operations and parse this.
0:10 But, it turns out it is entirely unnecessary.
0:13 So we can import the csv module.
0:15 This is a built in in Python.
0:17 I'll call this reader, and I'll say csv.DictReader.
0:21 There's a couple of kind if readers.
0:23 DictReader is the best one.
0:25 And you pass it this file stream.
0:27 And what this thing is, is it is something that
0:29 you can loop over, and every time you loop over it,
0:33 you get the values out, okay.
0:35 So, let's do just something really, really quick, and,
0:39 just for row in reader, and just so
0:42 you can see it working I'll print out, let's say.
0:47 So if we run this,
0:48 looks like it's working,
0:49 and what we get is something called
0:51 an Ordered Dictionary.
0:52 Doesn't matter that it's ordered,
0:53 all that matters to us I can ask it for
0:55 the date, or the actual mean temperatures.
0:57 Like, if just want to print out this part,
0:59 I can go, because this is a dictionary,
1:03 let's comment that out, I can just print here,
1:08 row.get the actual mean temperature.
1:13 Great, it looks like we already got a lot of data,
1:15 and we could work with it.
1:16 There's one super, super challenging problem, though.
1:20 If I really want to work with this data,
1:23 you very likely want to ask,
1:25 is this thing less than that other thing, right.
1:28 Is this temperature less than that?
1:29 So we can answer our questions.
1:31 What's the hottest day, what's the coldest day?
1:32 Things like this.
1:34 So, let's print out the type, right.
1:36 This is going to tell us the actual underlying data type here.
1:40 Strings, everything that comes back
1:42 from CSV files are strings.
1:43 Even if they look like dates, or they look like,
1:46 you know, numbers or something.
1:48 And so in order to actually work with these,
1:51 we're going to have to do something a little bit different.
1:55 So, we're going to actually write a function
1:57 that takes this sort of raw row that we have here,
2:02 and instead of just saying we're going to store the text,
2:07 we're actually going to convert the numbers to numbers,
2:09 the dates to dates, things like that.
2:10 So we can actually answer questions like,
2:12 is this number less than that number?
2:15 Alright, the string less than or greater than
2:17 is not the same thing
2:18 as numerical less than or greater than, right?
2:20 Like, 100 is less than 7, for example,
2:25 if those were strings, but obviously not as number.