Having trouble getting program to work here. Need help to see how it works. CSV
ID: 3860172 • Letter: H
Question
Having trouble getting program to work here. Need help to see how it works.
CSV File Format:
While all CSV files do not fit this particular format, you are guaranteed that all CSV files entered by the user will match the following format. Multiple CSV files are provided for testing. They are contained in a file attached to the assignment called CSVTestFiles.zip. To examine how the data looks within the CSV file and how Python will read each line, the file can be opened with any text editor. The file can also be opened within Excel to show a tabular version of the data; note that how the data appears in Excel will not be how it appears in Python till after you create a two-dimensional list of the data.
The following is a small sample CSV file (displayed as if it was opened with a text editor):
Student,Midterm,Final Project,Final test Kelly,95,92,93 Joe,84,94,92
If the sample CSV file was parsed and turned into a two-dimensional list, it would appear as the following:
All values within the CSV file are separated by commas. Row 0 of the CSV file contains the attributes from Column 1 to the final column of the CSV file (in this example, that would-be column 3). Within the above sample, there would be three separate attributes (“Midterm”,
Column 0 Column 1 Column 2 Column 3 Row 0 Student Midterm Final Project Final test Row 1 Kelly 95 92 93 Row 2 Joe 84 94 92
CSV Analytics Final Project
“Final Project”, “Final test”) that the user should be able to select from the menu in the program. You can think of row 0 as the column headers for the rest of the data.
The rest of the rows within the CSV file, contains the objects that will be examined to identify the max value. In this example, there would be two objects (“Kelly” and “Joe”). Kelly has a grade of 95% for the midterm, 92% for the final project, and a 93% for the final test. Joe, on the other hand, has a grade of 84% for the midterm, 94% for the final project, and a 92% for the final test.
The element in row 0, column 0 is to always be ignored since this element is the column header for the object names. In this example, “Student” would be the element to be ignored.
The following would be the menu derived from this sample CSV file:
1. Midterm 2. Final Project 3. Final test
If a user selected the “Midterm” attribute within our program, the program would print off:
Largest Midterm value is Kelly with 95.0
All elements in the CSV file that is not an object name or an attribute is a number. Each number value within the CSV file can be represented with a floating-point number. Do not use Integers since some of the values may have decimal precision or scientific notation (e.g. 1.0E+11). Converting a string to a floating-point number handles these inconsistencies for you.
Requirements:
The program is to prompt the user for the name of the CSV file. If an exception occurs trying to open or read the file, an error message is to be displayed. The program is not to crash if the file is not found or there is an error reading the file. Use try- except!
Read the CSV file and create a two-dimensional list with the contents of the file. Each line of the file should be split upon the comma (e.g. “,”).
Display a menu from the available attributes from the CSV file and prompt the user to make a selection from the menu by entering the number of their choice. If the user enters something other than a number or a number in the range of the choices provided in the menu they are to be given feedback that their choice is not valid and asked for the input again. Under no circumstance should input from the user crash the program.
The output from the program is to display the selected attribute, the maximum value from that attribute and the object’s name that the maximum value belongs to.
CSV Analytics Final Project
After the output is displayed to the user, the program should ask the user if they would like to analyze another attribute. Use the prompt: Would you like to conduct another analysis on an attribute? (y/n) If the user answers y, then the program is to present the attribute menu again and accept input for another attribute. If the user answers with anything other than y, the program is to ask the user if they would like to evaluate another CSV file. Use the prompt: Would you like to evaluate another file? (y/n) If the user answers y, then the program is to accept input for another file name. If the user answers with anything other than y, the program is to exit.
The number of attributes displayed in the menu should NOT be hardcoded but be derived from the CSV file. If the CSV file has 2 attributes, the attribute menu should show 2 attributes to choose from; but if the CSV file has 15 attributes, the attribute menu should show 15 attributes to choose from.
Sample Output: All CSV files are attached to this assignment. (user input is highlighted in orange)
Sample output 1:
Welcome to CSV Analytics!
Enter the name of the file you would like to process: grades.csv
Attributes:
1. Midterm 2. Final Project 3. Final test 4. Participation
Enter choice: 1 Largest Midterm value is Kelly with 95.0
Would you like to conduct another analysis on an attribute? (y/n) y
Attributes:
1. Midterm 2. Final Project 3. Final test 4. Participation
Enter choice: 2 Largest Final Project value is Joe with 94.0
Would you like to conduct another analysis on an attribute? (y/n) n Would you like to evaluate another file? (y/n) n
CSV Analytics Final Project
Sample output 2:
Welcome to CSV Analytics!
Enter the name of the file you would like to process: miniCountries.csv
Attributes:
1. Area 2. GDP 3. Population
Enter choice: 1 Largest Area value is United States with 9631418.0
Would you like to conduct another analysis on an attribute? (y/n) n Would you like to evaluate another file? (y/n) y
Enter the name of the file you would like to process: grades.csv
Attributes:
1. Midterm 2. Final Project 3. Final test 4. Participation
Enter choice: 3 Largest Final test value is Kelly with 93.0
Would you like to conduct another analysis on an attribute? (y/n) n Would you like to evaluate another file? (y/n) n
Explanation / Answer
NOTE: I have completed the code for your assignment. Please check and let me know if you find any issues. I will revert back within 24 hours.
Code: http://pasted.co/4e9438d3
Execution output screenshot: https://pasteboard.co/GCeKuVY.png
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.