Practice : Writing data to a file
Background
This practice will continue with the data that we used in the practice for Topic 3.2.
- graduation_dropout.csv
- small_sample.csv [I will often make a small file available so that you can hand test your own code]
Recall that it looks like:
I have snipped in to only look at some of the data. But let's focus in on the row for AGWSR. The data shows that by the spring of 2017 36 of the 39 students who started as freshman in fall of 2013 had graduated in the four year period. Similarly, it shows that all 35 of the 35 students who started as freshman in fall of 2012 had graduated within that five year period.
Some schools have not reported some data. For example, Adair-Casey had reported their 5 year data but not their 4 year data. Alden had not reported any data. Every field with missing data is marked with the symbol "****"
Program Guide
For this practice activity you should ADD the following function to your graduation.py file that you created last time.
Create a function called addColumns() that:
- Takes in two parameters
- a string containing the name of the file to be used for reading
- Note, the file used should be in the same folder a your code
- a string containing the name of the file to be used for writing
- Note, this can be a completely new name
- a string containing the name of the file to be used for reading
- Opens the files provided by the parameters as appropriate
- Extracts the information for each school in the file
- On a SCHOOL BY SCHOOL basis this code should add two columns at the end of the row for that school
- 4 year graduation rate for that school
- 5 year graduation rate for that school
- If there is no data for that statistic you should include "****" in that column
- Save this new data file
- For example, we noticed earlier that AGWSR had a 4 year graduation rate of 92.3 and a 5 year graduation rate of 100
- returns nothing
- A sample run of your program will look like this. Notice this doesn't really look like much. The function doesn't actually return anything but it DOES do stuff "behind the scenes."
- But when we open the newly created csv file we see that it added columns cleanly (double check this with your results).
- Since Autolab is a little picky when it comes to grading, please note the following:
- The titles in your two new columns should match mine exactly including spaces between the number/word and word/%
- 4 year %
- 5 year %
- You should not provide any numerical formatting on the percent results. If it comes out with 5 or 6 decimal points we are going to show ALL of them.
- The titles in your two new columns should match mine exactly including spaces between the number/word and word/%
Testing Your Code
- Go to the AutoLab Homepage for the course
- https://hypnos.cs.uni.edu/courses/CSED1320-F21/assessments
- Log in if necessary
- For each of the assignments listed above, find their submission link under the "Practice" heading
- Upload the corresponding python file for that assignment.
- When the "handin history" page comes up you will need to refresh the page until a score of either 0 or 1 is shown with your assignment.
- Click on the 0/1 score to get feedback.
- Read the information carefully if you received a score of 0 and figure out what you need to do to fix the problem.
- Ask for help from me or other students if you don't understand an error message.
- Resubmit until the program earns a 1.