QuestionAnswered step-by-stepHW for CSV files:Please help out with the code. There are 5 functions. I’ve written out the extra credit.# -*- coding: utf-8 -*-“””Created on Sat Jul 17 16:09:52 2021@author:”””import ioimport sysimport csvimport unittestdef read_csv(file):”’Function to read in a CSVParameters———-file : stringthe name of the file you’re reading inReturns——-data_dict : dictthe double-nested dictionary that holds the data from the csv.”’data_dict = {}row_count = 1# write your code here that does things# it should read in the lines of data# it should also seperate the first row as header information# at the same time, it should grab the first item as the state information# the end result of the data should be formated like so# ex: (ap_dict) {“Alabama”: {“AMERICAN INDIAN/ALASKA NATIVE”: 1, “ASIAN”: 61,…},…}with open(file, ‘r’) as csv_file:return data_dictdef pct_calc(data_dict):”’Function to compute demographic percentagesParameters———-data_dict : dictthe dictionary you’re passing in. Should be the data dict from thecensus or AP data.Returns——-pct_dict: dictthe dictionary that represents the data in terms of percentage sharefor each demographic for each state in the data set.”’# declaring dict to hold pct valspct_dict = {}# write in code here# it should take the number for each demographic for each state and divide it by the state total column# ex: value = ensus_data[“Alabama”][“WHITE]/census_data[“Alabama][“State Totals”]# ex: round(value * 100, 2))return(pct_dict)def pct_dif(data_dict1, data_dict2):”’Function to compute the difference between the demographic percentagesParameters———-data_dict1 : dictthe first data_dict you pass in. In this case, the ap_datadata_dict2 : dictthe second data_dict you pass in. In this case, the census_dataReturns——-pct_dif_dict: dictthe dictionary of the percent differences.”’# creating the dictionary to hold the pct diferences for each “cell”pct_dif_dict = {}# write code here# it should subtract the % val of each val in the 2nd dict from the 1st dict# it should take the absolute value of that difference and round it to 2 decimal places# ex: value = ap_data[“Alabama”][“WHITE] – census_data[“Alabama”][“WHITE]# ex: abs(round(value, 2))# hint: you want to have a way to deal with the difference in naming conventions# ex: “North Carolina” vs “North-Carolina” string.replace is your friendreturn(pct_dif_dict)def csv_out(data_dict, file_name):”’Function to write output to a fileParameters———-data_dict : dictthe data dictionary you are writing to the file. In this case,the result from pct_dif_dictfile_name : strthe name of the file you are writing.Returns——-None. (Doesn’t return anything)”’with open(file_name, “w”, newline=””) as fileout:# you’ll want to write the rest of the code here# you want to write the header info as the first row# you want to then write each subsequent row of data# the rows will look like this# ex: Alabama,0.2,18.32,21.16,2.17,0.05,3.58,1.98,1.45def max_min_mutate(data_dict, col_list):# Do not change the code in this function”’function to mutate the data to simplify sortingParameters———-data_dict : dictdictionary of data passed in. In this case, it’s thecol_list : listlist of columns to mutate to.Returns——-demo_vals: dictDESCRIPTION.”’# Do not change the code in this functiondemo_vals = {}for demo in col_list:demo_vals.setdefault(demo, {})for state in data_dict:demo_vals[demo].setdefault(state, data_dict[state][demo])return(demo_vals)def max_min(data_dict):”’function to find the 5 max and min states & vals for each demographicParameters———-data_dict : dictthe data_dictionary you’re passing in. In this case, the mutated dictReturns——-max_min:a triple nested dict with the this basic format{“max”:{demographic:{“state”:value}}}”’max_min = {“max”:{},”min”:{}}# fill out the code in between here# you’ll want to make code to fill the dictionary# the second inner layer will look like {“max”:{demographic:{}}# the innermost layer will look like {demographic:{“state”:value}}# printing and returning the data#print(max_min)return(max_min)def nat_pct(data_dict, col_list): ”’ EXTRA CREDIT function to calculate the percentages for each demographic on natl. level Parameters ———- data_dict : dict the data dictionary you are passing in. Either AP or Census data col_list : list list of the columns to loop through. helps filter out state totals cols Returns ——- data_dict_totals dictionary of the national demographic percentages ”’ data_dict_totals = {} # fill out code here # you’ll want to add the demographics as the outerdict keys # then you’ll want to cycle through the states in the data dict # while you’re doing that, you’ll be accumulating the totals for each demographic # you’ll then convert each value to a demographic percentage # finally, you’ll return the dictionary for demography in col_list: data_dict_totals[demography] = 0 for state in data_dict.keys(): for demo in col_list: if demo in data_dict[state]: data_dict_totals[demo] += int(data_dict[state][demo]) for demo in data_dict_totals.keys(): if demo != “State Totals”: data_dict_totals[demo] = round(int(data_dict_totals[demo]) / int(data_dict_totals[“State Totals”]) * 100, 2) return(data_dict_totals)def nat_dif(data_dict1, data_dict2): ”’ EXTRA CREDIT function to calculate the difference on the national level Parameters ———- data_dict1 : dict the first data dict you are passing in data_dict2 : dict the 2nd data dict you are passing in. Returns nat_dif: dict the dictionary consisting of the demographic difference on natl. level ”’ nat_dif = {} # fill out code here # you’ll want to remove the state totals # then you’ll want to loop through both dicts and find the differences # finally, you’ll want to return those differences for demo in data_dict1.keys(): if demo != “NO RESPONSE” and demo != “State Totals”: nat_dif[demo] = abs(round(data_dict1[demo] – data_dict2[demo],2)) return(nat_dif)def main(): # reading in the data ap_data = read_csv(“ap_cleaned.csv”) census_data = read_csv(“census_cleaned.csv”) # computing demographic percentages ap_pct = pct_calc(ap_data) census_pct = pct_calc(census_data) # computing the difference between test taker and state demographics pct_dif_dict = pct_dif(ap_pct, census_pct) # outputing the csv csv_out(pct_dif_dict, “HW5V1.csv”) # creating a list from the keys of inner dict col_list = list(pct_dif_dict[“Alabama”].keys()) # mutating the data mutated = max_min_mutate(pct_dif_dict, col_list) # finding the max and min vals max_min_vals = max_min(mutated) # extra credit # providing a list of col vals to cycle through col_list = census_data[“Alabama”].keys() # computing the national percentages ap_nat_pct = nat_pct(ap_data, col_list) census_nat_pct = nat_pct(census_data, col_list) # computing the difference between them dif = nat_dif(ap_nat_pct, census_nat_pct) print(“Difference between AP Comp Sci A and national demographics:n”, dif)main()# unit testing# Don’t touch anything below hereclass HWTest(unittest.TestCase): def setUp(self): # surpressing output on unit testing suppress_ = io.StringIO() # sys.stdout = suppress_ # setting up the data we’ll need here # basically, redoing all the stuff we did in the main function self.ap_data = read_csv(“ap_cleaned.csv”) self.census_data = read_csv(“census_cleaned.csv”) self.ap_pct = pct_calc(self.ap_data) self.census_pct = pct_calc(self.census_data) self.pct_dif_dict = pct_dif(self.ap_pct, self.census_pct) self.col_list = list(self.pct_dif_dict[“Alabama”].keys()) self.mutated = max_min_mutate(self.pct_dif_dict, self.col_list) self.max_min_val = max_min(self.mutated) # extra credit # providing a list of col vals to cycle through self.col_list = self.census_data[“Alabama”].keys() # computing the national percentages self.ap_nat_pct = nat_pct(self.ap_data, self.col_list) self.census_nat_pct = nat_pct(self.census_data, self.col_list) self.dif = nat_dif(self.ap_nat_pct, self.census_nat_pct) # testing the csv reading func is working properly def test_read_csv(self): test = read_csv(“ap_cleaned.csv”) self.assertEqual(test[“Alabama”][“ASIAN”], 61) # testing the pct_calc function def test_pct_calc(self): self.assertEqual(pct_calc({“state”:{“demo”:5,”State Totals”:10}}), {“state”:{“demo”: 50.0}}) # second test on the pct_calc function # fails because my value is wrong (doh!) def test2_pct_calc(self): self.assertEqual( self.ap_pct[“Alabama”][“ASIAN”], 19.68) # testing the pct_dif function def test_pct_dif(self): self.assertEqual( pct_dif({“state”:{“demo”:50.0}},{“state”:{“demo”:50.0}}), {‘state’: {‘demo’: 0.0}} ) # second test on the pct_dif function # needs a valid value though brah def test2_pct_dif(self): self.assertEqual( self.pct_dif_dict[“Alabama”][“AMERICAN INDIAN/ALASKA NATIVE”], 0.2) # testing the max_min function def test_max_min(self): self.assertEqual( max_min({“demo”:{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}}) , {‘max’: {‘demo’: {‘e’: 5, ‘d’: 4, ‘c’: 3, ‘b’: 2, ‘a’: 1}}, ‘min’: {‘demo’: {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5}}} ) # second test on the max_min function def test2_max_min(self): self.assertEqual( self.max_min_val[“max”][“BLACK”][“District-of-Columbia”], 23.92) # testing the nat_pct extra credit function def test_nat_pct(self): self.assertEqual( nat_pct({“state”:{“demo”:5,”State Totals”:10}},[“demo”, “State Totals”]), {“demo”:50.0, “State Totals”:10}) # second test for the nat_pct extra credit function def test2_nat_pct(self): self.assertEqual( self.ap_nat_pct[“AMERICAN INDIAN/ALASKA NATIVE”], 0.29) # testing the nat_dif extra credit function def test_nat_dif(self): self.assertEqual( nat_dif({“demo”:0.53, “State Totals”: 1},{“demo”:0.5, “State Totals”: 1}), {“demo”:0.03} ) # second test for the nat_dif extra credit function def test2_nat_dif(self): self.assertEqual( self.dif[“ASIAN”], 27.93)if __name__ == ‘__main__’: unittest.main(verbosity=2)Introduction:In this project you will be reading from and writing to Comma-Separated Values (CSV) files. Working with CSV files is an important skill in data management and analysis. There is a ton of data available on the internet and that data is often in a CSV format.You will be looking at AP exam race and ethnicity data to compare it, state by state, with state race and ethnicity data.Data Science & Social Justice:Data science is a difficult concept to pin down; it can mean anything from working with excel to machine learning. The Oxford Reference defines social justice as”The objective of creating a fair and equal society in which each individual matters, their rights are recognized and protected, and decisions are made in ways that are fair and honest.”( Data science can be used to further the goals of social justice by highlighting inequity and inequality in society.Data Description:One of the sources for this assignment is theAP exams for 2020.Secondary students can take Advanced Placement (AP) courses for college credit and/or placement. We pulled out just the race and ethnicity data that lists the number of exam takers for the Computer Science A exams. The columns of the data are of the different race and ethnicity groups that were measured, while the rows are of the different states. The format of the data is shown belowThe other data is from the Census Bureau. We took the data from the American Community Survey. The exact query and resulting data table can be foundhere. We reduced the data to just the columns you need.In both cases, the files are CSV files that have already been cleaned. The AP data can be foundhereand the Census data can be foundhere. The data is also included when you clone the github repository. The data dictionary for the data can be foundhere. The first row of data for both files is the header information.Assignment:You will create the five functions that will read a csv into a dictionary, calculate the demographic percentages for each state in each dataset, calculate the absolute value of the difference between those percentages, and write data to a csv.read_csv(“filename”) -> dictread_csvwill take a filename to read from as a string. It will return a dictionary which has states as the keys and dictionaries as the values. The inner dictionary will use the demographic categories as the keys and either the number of exam takers or number of people of that category in that state as the values. You will want to convert the numbers from strings to integers (hint: useintto convert from string to integer).Example output:When run on the AP data it should produce a dictionary like this:{“Alabama”: {“AMERICAN INDIAN/ALASKA NATIVE”: 1, “ASIAN”: 61,…},…} When run on the Census data it should produce a dictionary like this: {“Alabama”: {“AMERICAN INDIAN/ALASKA NATIVE”: 25565, “ASIAN”: 66270,…}pct_calc(dict) -> dictpct_calcwill take a dictionary of dictionaries. The function will iterate through that dictionary (dict) of dictionaries (dicts) and return a dict of dicts where the inner key values are the proportion that each demographic category is of the state population.For the census data, this will be the percentage that each demographic is of the state’s population. For the AP data, this will be the percentage that each category makes up of the total population of test takers in the state. Remember that each inner dict value is the count of that demographic in that data set. We recommend that you round your percentages to two decimal points.An example of this in general terms is:(White Population of state/State Totals) * 100 = percentage of the state’s population that is whiteExpected output:When run on the AP data, it should produce a dictionary like as follows {‘Alabama’: {‘AMERICAN INDIAN/ALASKA NATIVE’: 0.32, ‘ASIAN’: 19.68,…}…} When run on the Census data, it should a dictionary like as follows{‘Alabama’: {‘AMERICAN INDIAN/ALASKA NATIVE’: 0.52, ‘ASIAN’: 1.36,…}…}pct_dif(dict1, dict2) -> dictpct_dif will take two arguments. The first is a dictionary with the AP data while the second is a dictionary with the census data. For each demographic category in each state (excluding the state totals of course), you will calculate the absolute value of the difference between the two data sets. This will produce a doubly nested dictionary which contains the difference between each “cell” of the data. As a reminder, the AP data contains a column that won’t be found in the census data (“NO RESPONSE”) so you’ll have to ignore that. We recommend you round your percentages to two decimal points.An example of this in general terms is:Absolute value (% of population of state that is white – % of test takers of AP CS A exam that are white) = the percentage difference between the population and test takes for that demographicExpected output:When run on the two dictionaries, the resulting dictionary should look as follows {‘Alabama’: {‘AMERICAN INDIAN/ALASKA NATIVE’: 0.2, ‘ASIAN’: 18.32,…}…}csv_out(dict, “filename”)csv_out will take two arguments. The first is the dictionary that was produced throughpct_dif_calcand the second is the name for the output file (“proj1-yourlastname.csv”). The function will write the data from the dictionary into a csv file. The first column should contain the states and the rest of the columns the percentages for each respective demographic category separated by commas. The first line of the file should be the header information and each row of data should be on a new line.# ex: Alabama,0.2,18.32,21.16,2.17,0.05,3.58,1.98,1.455. max_min(dict)max_min will take the argument of a dictionary. The data has been mutated to make it easier for you to sort it. Your goal is to create a triple nested dictionary that will contain states with the 5 largest and 5 smallest differences between their demographics and the demographics of AP exam test takers for each demographic. You will print and return that dictionary (Hint: use sorted. It will make your life easier.) If you choose to do the extra credit, the print statement won’t be included in this function.Your returned dict & print statement (assuming you don’t do the extra credit) should look like this:…{‘max’: {‘AMERICAN INDIAN/ALASKA NATIVE’: {‘Alaska’: 14.89, ‘South-Dakota’: 8.75, ‘New-Mexico’: 7.78, ‘Oklahoma’: 7.04, ‘Montana’: 6.36}, ‘ASIAN’: {‘South-Dakota’: 42.99, ‘California’: 35.82, ‘New-Jersey’: 32.25, ‘Virginia’: 32.08, ‘New-Hampshire’: 31.24}, ‘BLACK’: {‘District-of-Columbia’: 23.92, ‘Georgia’: 23.9, ‘Louisiana’: 23.86, ‘South-Carolina’: 21.28, ‘Alabama’: 21.16}, ‘HISPANIC/LATINO’: {‘California’: 25.12, ‘New-Mexico’: 24.9, ‘Texas’: 18.81, ‘Arizona’: 15.25, ‘Colorado’: 13.51}, ‘NATIVE HAWAIIAN/OTH PACF ISL’: {‘Hawaii’: 7.07, ‘Alaska’: 1.25, ‘Utah’: 0.89, ‘Oregon’: 0.4, ‘Washington’: 0.37}, ‘WHITE’: {‘New-Hampshire’: 38.14, ‘Washington’: 27.87, ‘South-Dakota’: 26.4, ‘Iowa’: 25.26, ‘Virginia’: 23.5}, ‘TWO OR MORE RACES’: {‘Mississippi’: 11.15, ‘North-Dakota’: 5.3, ‘Utah’: 5.15, ‘District-of-Columbia’: 5.11, ‘Kansas’: 4.71}, ‘OTHER’: {‘California’: 13.95, ‘Nevada’: 10.26, ‘New-York’: 8.66, ‘New-Mexico’: 8.63, ‘Arizona’: 6.53}}, ‘min’: {‘AMERICAN INDIAN/ALASKA NATIVE’: {‘Tennessee’: 0.0, ‘Massachusetts’: 0.02, ‘Texas’: 0.03, ‘Delaware’: 0.04, ‘Maryland’: 0.05}, ‘ASIAN’: {‘North-Dakota’: 1.18, ‘Alaska’: 3.07, ‘District-of-Columbia’: 3.48, ‘Utah’: 8.02, ‘Maine’: 8.04}, ‘BLACK’: {‘Nebraska’: 0.03, ‘Idaho’: 0.09, ‘Utah’: 0.1, ‘Vermont’: 0.27, ‘North-Dakota’: 0.28}, ‘HISPANIC/LATINO’: {‘Kentucky’: 0.02, ‘Hawaii’: 0.04, ‘Georgia’: 0.13, ‘Ohio’: 0.29, ‘Tennessee’: 0.38}, ‘NATIVE HAWAIIAN/OTH PACF ISL’: {‘Texas’: 0.0, ‘Massachusetts’: 0.0, ‘New-York’: 0.01, ‘West-Virginia’: 0.02, ‘New-Jersey’: 0.02}, ‘WHITE’: {‘Colorado’: 0.56, ‘South-Carolina’: 0.87, ‘Alaska’: 2.16, ‘Montana’: 2.8, ‘North-Dakota’: 2.86}, ‘TWO OR MORE RACES’: {‘Michigan’: 0.04, ‘Vermont’: 0.15, ‘Maine’: 0.27, ‘New-York’: 0.5, ‘Washington’: 0.7}, ‘OTHER’: {‘Maine’: 0.27, ‘Vermont’: 0.39, ‘West-Virginia’: 0.44, ‘New-Hampshire’: 0.56, ‘Montana’: 0.67}}}7. Extra Credit:Create a pair of functions to calculate the national percentages for each dataset and compute the difference between them.nat_pct(data_dict, col_list)nat_pct will take in a data dict (ap_data or census_data) and then calculate the demographic percentages at the national level.The output should look like this for the ap_data:{‘AMERICAN INDIAN/ALASKA NATIVE’: 0.29, ‘ASIAN’: 33.45, ‘BLACK’: 3.46, ‘HISPANIC/LATINO’: 11.11, ‘NATIVE HAWAIIAN/OTH PACF ISL’: 0.09, ‘OTHER’: 0.0, ‘State Totals’: 65000, ‘TWO OR MORE RACES’: 4.81, ‘WHITE’: 42.07}And like this for the census_data:{‘AMERICAN INDIAN/ALASKA NATIVE’: 0.85, ‘ASIAN’: 5.52, ‘BLACK’: 12.7, ‘HISPANIC/LATINO’: 18.01, ‘NATIVE HAWAIIAN/OTH PACF ISL’: 0.18, ‘OTHER’: 4.94, ‘State Totals’: 324697795, ‘TWO OR MORE RACES’: 3.32, ‘WHITE’: 60.7}nat_dif(data_dict1, data_dict2)nat_dif will take in the two percentage dictionaries you created with the nat_pct function and calculate the difference between each value in them.The resulting dictionary should look like this:{‘AMERICAN INDIAN/ALASKA NATIVE’: -0.56, ‘ASIAN’: 27.93, ‘BLACK’: -9.24,’HISPANIC/LATINO’: -6.9, ‘NATIVE HAWAIIAN/OTH PACF ISL’: -0.09, ‘OTHER’: -4.94, ‘TWO OR MORE RACES’: 1.49, ‘WHITE’: -18.63}CSV files below:ap_cleaned.csvState,AMERICAN INDIAN/ALASKA NATIVE,ASIAN,BLACK,HISPANIC/LATINO,NATIVE HAWAIIAN/OTH PACF ISL,WHITE,TWO OR MORE RACES,OTHER,NO RESPONSE,State TotalsAlabama,1,61,17,20,0,192,12,0,7,310Alaska,0,4,0,2,0,27,4,0,6,43Arizona,3,193,12,106,0,283,37,0,25,659Arkansas,1,53,16,50,0,262,17,0,6,405California,23,6034,149,1667,16,2659,731,0,715,11994Colorado,2,152,14,74,1,623,44,0,13,923Connecticut,1,353,41,102,1,717,63,0,59,1337Delaware,1,57,26,12,0,120,12,0,7,235District-of-Columbia,0,10,30,16,0,57,11,0,10,134Florida,11,482,158,795,3,1151,109,0,78,2787Georgia,7,801,177,216,0,944,90,0,60,2295Hawaii,0,68,0,14,4,19,28,0,1,134Idaho,0,35,1,1,0,109,8,0,12,166Illinois,3,1059,78,394,2,1695,132,0,174,3537Indiana,3,119,38,52,1,532,36,0,26,807Iowa,0,60,7,14,0,174,19,0,14,288Kansas,1,36,2,10,0,82,12,0,4,147Kentucky,3,87,5,19,0,372,20,0,16,522Louisiana,0,29,23,30,0,182,8,0,3,275Maine,0,11,2,5,0,92,3,0,7,120Maryland,7,671,263,121,3,835,103,0,144,2147Massachusetts,5,743,91,153,1,1205,100,0,154,2452Michigan,0,429,19,57,3,850,43,0,52,1453Minnesota,3,208,31,45,1,556,47,0,52,943Mississippi,0,4,4,1,0,11,3,0,1,24Missouri,1,116,22,20,1,360,20,0,29,569Montana,0,1,0,0,0,8,0,0,0,9Nebraska,0,25,7,5,0,97,6,0,4,144Nevada,2,78,12,80,2,138,34,0,7,353New-Hampshire,0,77,1,11,0,118,9,0,11,227New-Jersey,20,1935,147,413,3,1686,166,0,269,4639New-Mexico,2,11,2,27,0,52,1,0,18,113New-York,8,1531,207,512,2,1829,164,0,241,4494North-Carolina,2,356,58,97,0,710,70,0,65,1358North-Dakota,0,1,1,1,0,31,3,0,1,38Ohio,9,274,61,51,1,930,66,0,61,1453Oklahoma,1,30,3,17,0,98,17,0,6,172Oregon,2,80,1,21,0,180,24,0,15,323Pennsylvania,10,609,71,124,2,1339,98,0,109,2362Rhode-Island,0,31,1,17,0,103,8,0,4,164South-Carolina,4,65,24,22,0,282,29,0,11,437South-Dakota,0,4,0,0,0,5,0,0,0,9Tennessee,1,78,13,19,0,244,12,0,9,376Texas,31,2287,198,1351,6,2203,276,0,229,6581Utah,0,24,3,19,0,158,19,0,9,232Vermont,0,12,1,3,0,69,2,0,5,92Virginia,7,1289,174,236,1,1284,211,0,148,3350Washington,8,958,26,151,7,993,160,0,139,2442West-Virginia,1,17,1,5,0,87,5,0,3,119Wisconsin,2,90,8,41,0,576,34,0,34,785Wyoming,1,2,0,0,0,17,0,0,2,22census_cleaned.csv:State,AMERICAN INDIAN/ALASKA NATIVE,ASIAN,BLACK,HISPANIC/LATINO,NATIVE HAWAIIAN/OTH PACF ISL,OTHER,State Totals,TWO OR MORE RACES,WHITEAlabama,25565,66270,1299048,208626,2238,70662,4876250,92220,3194929Alaska,109751,45920,24205,51870,9204,11308,737068,60665,446897Arizona,317414,233213,317462,2208663,14458,460262,7050299,263037,3857007Arkansas,20434,45504,459542,224130,8733,83576,2999370,80537,2172453California,303998,5692423,2274108,15327688,155290,5481792,39283497,1922664,14605312Colorado,54847,178147,233647,1208172,8643,216767,5610349,205724,3818321Connecticut,9955,161257,383416,574240,1123,186292,3575074,119000,2392013Delaware,3729,37009,212302,88364,542,18350,957248,27079,596497District of Columbia,2091,27592,320811,76191,376,34511,692683,21445,253373Florida,59320,571276,3359031,5346684,12653,625079,20901636,572021,11266347Georgia,37440,414481,3289020,992394,6233,291872,10403847,265912,5485855Hawaii,3710,537355,26025,149118,142997,17433,1422094,339727,312722Idaho,23136,24287,11918,215476,2755,59676,1717750,50569,1407883Illinois,33460,698524,1813590,2186387,4477,757231,12770631,328446,7829850Indiana,15782,151979,626587,461850,2506,145747,6665703,169711,5271071Iowa,11976,75741,116359,188311,3729,39048,3139508,66585,2690052Kansas,24010,85794,170291,345680,2382,71683,2910652,100557,2208576Kentucky,9386,65191,358928,162994,3182,43601,4449052,100285,3761855Louisiana,26361,80806,1502963,239164,1406,65592,4664362,94959,2735887Maine,8660,15109,18468,22100,396,3541,1335492,29796,1244531Maryland,16762,378126,1799094,606482,3034,272137,6018848,206692,3062363Massachusetts,14764,452436,522357,809179,2804,286619,6850553,223035,4903539Michigan,53316,311721,1374314,507353,3099,117801,9965265,291259,7477400Minnesota,58011,268181,356515,299556,2194,104032,5563378,165396,4442126Mississippi,14269,29605,1125623,91202,680,30728,2984418,40296,1689927Missouri,27084,120654,701334,254791,8231,71335,6104910,160368,4849901Montana,66839,8259,5303,40314,807,7076,1050649,32161,904550Nebraska,17673,45655,92406,208271,1327,40253,1914571,50386,1512111Nevada,38026,242267,271005,853041,20022,304947,2972382,146408,1463237New Hampshire,2036,36180,21546,50493,443,7510,1348124,28281,1214927New Jersey,19711,840168,1194882,1794736,3458,558665,8878503,243545,4916380New Mexico,199845,32577,44120,1020817,1644,180638,2092454,68264,782269New York,79512,1647606,3065471,3720983,8821,1694965,19572319,616257,10883812North Carolina,123952,292992,2200761,962665,7213,316763,10264876,273276,6474688North Dakota,40006,11006,21985,28317,863,8109,756717,19612,638985Ohio,22816,258199,1446193,443415,3880,112836,11655397,335426,9197115Oklahoma,299621,85239,286356,417906,6260,106709,3932870,304615,2581231Oregon,48060,180580,78679,537217,16625,126587,4129803,198352,3125842Pennsylvania,24691,436324,1430664,935216,4198,275177,12791530,319874,9777163Rhode Island,5277,35958,71561,163226,810,57807,1057231,35221,761432South Carolina,17645,78805,1344139,285458,4002,88274,5020806,115930,3196421South Dakota,76190,12627,17531,33024,504,7230,870638,22837,713546Tennessee,18189,117600,1124473,364174,3771,92655,6709356,147536,4951558Texas,141425,1357273,3428211,11116881,25292,1643869,28260856,761411,11856336Utah,33721,71977,36849,434832,27554,156229,3096848,94036,2425647Vermont,2132,10461,8502,12038,325,2410,624313,12600,579340Virginia,23873,541133,1621592,792001,6179,223794,8454463,320275,5227569Washington,94449,631333,281683,937579,49090,333038,7404107,433386,5073945West Virginia,3667,14523,66990,28368,419,7971,1817305,32135,1671546Wisconsin,51392,161841,371200,394392,2400,118350,5790716,138572,4705599Wyoming,14164,5025,5582,57341,596,8832,581024,15521,488437Computer ScienceEngineering & TechnologyPython ProgrammingCS 1AShare Question

Order your essay today and save 20% with the discount code ESSAYHELP