diff options
author | Vincent Ambo <mail@tazj.in> | 2021-12-13T22·51+0300 |
---|---|---|
committer | Vincent Ambo <mail@tazj.in> | 2021-12-13T23·15+0300 |
commit | 019f8fd2113df4c5247c3969c60fd4f0e08f91f7 (patch) | |
tree | 76a857f61aa88f62a30e854651e8439db77fd0ea /users/wpcarro/assessments/ramp | |
parent | 464bbcb15c09813172c79820bcf526bb10cf4208 (diff) | |
parent | 6123e976928ca3d8d93f0b2006b10b5f659eb74d (diff) |
subtree(users/wpcarro): docking briefcase at '24f5a642' r/3226
git-subtree-dir: users/wpcarro git-subtree-mainline: 464bbcb15c09813172c79820bcf526bb10cf4208 git-subtree-split: 24f5a642af3aa1627bbff977f0a101907a02c69f Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
Diffstat (limited to 'users/wpcarro/assessments/ramp')
-rw-r--r-- | users/wpcarro/assessments/ramp/solution-emacs-elixir-format.py | 29 | ||||
-rw-r--r-- | users/wpcarro/assessments/ramp/solution.py | 87 |
2 files changed, 116 insertions, 0 deletions
diff --git a/users/wpcarro/assessments/ramp/solution-emacs-elixir-format.py b/users/wpcarro/assessments/ramp/solution-emacs-elixir-format.py new file mode 100644 index 000000000000..d0d948402001 --- /dev/null +++ b/users/wpcarro/assessments/ramp/solution-emacs-elixir-format.py @@ -0,0 +1,29 @@ +# The file '2010.census.txt' contains summary statistics from the 2010 United +# States census including household income. The data is in an unspecified +# format. + +# Find the average of the column called: + +# 'MEDIAN HOUSEHOLD INCOME' + +# Ideally the solution should be a command line script, of the form: + +# $ ./solution [options] [file...] + +# The solution may be written in any language, Python is preferred but not +# required. + +# Google, stack overflow, etc. usage is allowed. + +import requests + +url = "https://assets.tryramp.com/interview/census/2010.census.txt" + +def main(): + res = requests.get(url) + if res.status not in {200}: + raise Exception("Unexpected status code: {}".format(res.status_code)) + # download the content + # parse row + # select 'MEDIAN HOUSEHOLD INCOME' column + pass diff --git a/users/wpcarro/assessments/ramp/solution.py b/users/wpcarro/assessments/ramp/solution.py new file mode 100644 index 000000000000..28060bfb3c40 --- /dev/null +++ b/users/wpcarro/assessments/ramp/solution.py @@ -0,0 +1,87 @@ +# The file '2010.census.txt' contains summary statistics from the 2010 United +# States census including household income. The data is in an unspecified +# format. + +# Find the average of the column called: + +# 'MEDIAN HOUSEHOLD INCOME' + +# Ideally the solution should be a command line script, of the form: + +# $ ./solution [options] [file...] + +# The solution may be written in any language, Python is preferred but not +# required. + +# Google, stack overflow, etc. usage is allowed. + +import requests +import csv + +url = "https://assets.tryramp.com/interview/census/2010.census.txt" +column = 'MEDIAN HOUSEHOLD INCOME' +columns = [ + 'CENSUS YEAR', + 'TRACT', + 'BLOCK GROUP', + 'FIPS ID', + 'TOTAL POPULATION', + 'POPULATION WHITE', + 'POPULATION BLACK', + 'POPULATION ASIAN', + 'POPULATION OTHER', + 'POPULATION AMERICAN INDIAN', + 'POPULATION PACIFIC ISLANDER', + 'POPULATION ONE RACE', + 'POPULATION MULTI RACE', + 'POPULATION 25 OLDER', + 'MEDIAN AGE', + 'MEDIAN HOUSEHOLD INCOME', + 'HIGH SCHOOL MALE', + 'HIGH SCHOOL MORE MALE', + 'COLLEGE 1 YR LESS MALE', + 'COLLEGE 1 YR MORE MALE', + 'ASSOCIATES DEGREE MALE', + 'BACHELORS DEGREE MALE', + 'MASTERS DEGREE MALE', + 'PROFESSIONAL DEGREE MALE', + 'DOCTORAL DEGREE MALE', + 'HIGH SCHOOL FEMALE', + 'HIGH SCHOOL MORE FEMALE', + 'COLLEGE 1 YR LESS FEMALE', + 'COLLEGE 1 YR MORE FEMALE', + 'ASSOCIATES DEGREE FEMALE', + 'BACHELORS DEGREE FEMALE', + 'MASTERS DEGREE FEMALE', + 'PROFESSIONAL DEGREE FEMALE', + 'DOCTORAL DEGREE FEMALE', + 'PERCENT 25 YR OVER HIGH SCHOOL MORE', + 'HOUSING UNITS', + 'OCCUPIED HOUSING UNITS', + 'OWNER OCCUPIED HOUSING', + 'RENTER OCCUPIED HOUSING', + 'PERCENT OWNER OCCUPIED', + 'PERCENT RENTER OCCUPIED', + 'MEDIAN HOUSE VALUE OWNER OCCUPIED', + 'MEDIAN YEAR BUILT', + 'VACANCY RATES', +] + + +def average(xs): + return sum(xs) / len(xs) + + +def parse_body(body): + return list(csv.DictReader(body.split('\n')[1:], delimiter='|', fieldnames=columns)) + + +def main(): + res = requests.get(url) + if res.status_code not in {200}: + raise Exception("Unexpected status code: {}".format(res.status_code)) + return average([int(d.get(column)) + for d in parse_body(res.text) + if int(d.get(column)) >= 0]) + +print(main()) |