From bee90d5988ca4193b61206ca6856ae810ec1f5cd Mon Sep 17 00:00:00 2001 From: Steve Baskauf Date: Mon, 11 Mar 2024 07:37:34 -0500 Subject: [PATCH] incremental updates to ees project description --- script/codegraf/ees_project/index.md | 57 +++++-------------- script/codegraf/ees_project/output_lists.png | Bin 45346 -> 0 bytes 2 files changed, 15 insertions(+), 42 deletions(-) delete mode 100644 script/codegraf/ees_project/output_lists.png diff --git a/script/codegraf/ees_project/index.md b/script/codegraf/ees_project/index.md index d1eb5526..0b48d730 100644 --- a/script/codegraf/ees_project/index.md +++ b/script/codegraf/ees_project/index.md @@ -9,23 +9,20 @@ breadcrumb: ees ## Project learning objectives: The learner will: -- acquire data from a tabular data source and load it into a Python data structure (list of dictionaries). +- acquire data from a tabular data source and load it into a Python data structure (pandas DataFrame). - extract necessary data from the data structure and wrangle it into a form usable in their analysis. - use the basic Python statements they have learned: `if`, `for`, assignment, use a function from a module, apply methods to an object. -- manipulate lists and dictionaries by looping through list items, specifying dictionary items, and building lists by appending items. - create a simple visualization using `matplotlib.pyplot`. ## Overall goals -We have monthly average climate data in tabular form acquired from the National Centers for Environmental Information for a number of locations around the U.S. The data look like this: +We have monthly average climate data in tabular form acquired from the National Centers for Environmental Information for a number of locations around the U.S. We will be analyzing data for Mesa, Arizona from 1896 through 2017. The data have been extracted and stored in GitHub [here](https://github.com/HeardLibrary/digital-scholarship/blob/master/data/codegraf/mesa2880172.csv). The data look like this: ![climate data table example](input_table.png) In order to visualize these data, we need to summarize it by averaging values by year or by month. We also will need to deal with situations where values are missing. -In the end, we want one list containing the time values to be plotted (the X values) and another list with the average values that correspond to those time values (the Y values). For example, here are two lists for yearly averages for precipitation (in mm): - -![example output lists](output_lists.png) +In the end, we want one Series containing the time values to be plotted (the X values) and another Series with the average values of yearly averages for precipitation (in mm) that correspond to those time values (the Y values). We can then visualize these data using Matplotlib. Here is an example for the data above: @@ -44,20 +41,19 @@ Much of the data wrangling code can be reused with modification after you comple # Tasks and subtasks -1 Acquire data
-1\.1 Use a script-defined function (provided) to load CSV from URL to a list of dictionaries
+1 Acquire data and wrangle date
+1\.1 Use the `pd.read_csv()` function to load CSV from URL to a pandas DataFrame.
+1\.2 Split the YYYY-MM date strings into separate year and month columns
+1\.3 Create a list of intervals for the desired time range
2 Calculate means for desired quantity (rainfall or temperature)
-2\.1 Step through all data in column for the quantity, then sum for period to be averaged
-2\.1.1 Extract year or month from date string if necessary
-2\.1.2 Screen whether a particular datum is from the correct time interval
-2\.1.3 Skip missing data
-2\.1.4 Add screened data to sum
-2\.1.5 Count data that were summarized (exclude missing data)
-2\.2 Calculate the mean from the sum and count
-2\.3 Repeat the screening for every time interval to be graphed (year or month)
-2\.3.1 Determine the limits of the period for that analysis
-2\.3.2 Append time point and mean to growing lists of summary data
+2\.1 Create an empty table
+2\.2 Step through all of the time intervals and calculate the mean
+2\.2.1 Slice the DataFrame to include only the current time interval
+2\.2.2 Calculate the mean for the slice
+2\.2.3 Skip missing data
+2\.2.4 Add the calculated data to the table
+2\.3 Turn the table into a pandas DataFrame
3 Visualize data
3\.1 Set up subplot
@@ -76,32 +72,9 @@ For particular tasks, it is best to start with the narrowest subtasks and work y The raw data will be provided as a file available from GitHub using a URL given to you. -**1\.1 Use a script-defined function (provided) to load CSV from URL to a list of dictionaries** - -Use the function below as a starting point for your code. The function will get the data, convert it to a Python list of dictionaries, and return the list of dictionaries. The dictionaries are a special kind known as an *ordered dictionary*, but you can use them just like regular dictionaries. +**1\.1 Use `pd.read_csv()()` to load the CSV from URL to a pandas DataFrame** -``` -import requests -import csv -import matplotlib.pyplot as plt -import numpy as np - -def read_dicts_from_github_csv(path): - """read from a CSV file in GitHub into a tabular form. Pass in the URL, return a list of dictionaries.""" - response = requests.get(path) - file_text = response.text.split('\n') - file_rows = csv.DictReader(file_text) - table = [] - for row in file_rows: - table.append(row) - return table -``` -To use the function, call it as you would any other function: - -``` -data = read_dicts_from_github_csv(url) -``` **2 Calculate means for desired quantity (rainfall or temperature)** diff --git a/script/codegraf/ees_project/output_lists.png b/script/codegraf/ees_project/output_lists.png deleted file mode 100644 index bcf19242d8caf690cca727e9dd2c577fb8f0c0d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45346 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 PfIn5R=96MY%b@=PM@j%}