Skip to main content

Explore, load, and get documentation for Colorado crime data.

Project description

crime    

View Updated Documentation

Source code is here


Easily load online crime datasts. Explore available datasets from inside a python notebook, with descriptive cell outputs showing general info and descriptions of each dataset and documentation of each column.


Install & Use

pip install crime
import crime as cr

Later, run pip install -U crime every few days to make sure you've got the latest version.

Note: this library should work with any recent Python version, but it has only been tested with 3.9.



How does it work?

Crime pre-defines nicknames and ids for a collection of Socrata datasets like this one for you to pick from. This info isn't stored in the package itself, but rather in this json file on Github, which can be updated anytime without changing the code. Every time you import crime, a Github API request is made to retrieve this configuration, so you'll need internet. Calling cr.sources() without parameters will just return this info, without making any additional requests.

In addition to letting you load/preview any of these datasets, crime's most important feature is its ability to show a detailed description on each dataset, with full documentation on every column. When you run cr.sources('dataset_name'), an api request is made to Socrata to get the metadata on a particular dataset. The most useful information gets formatted & printed to your screen. Here is what that output would look like if you looped through each dataset name and printed its description.



Getting Started

First, get an App Token from Socrata. Not required but highly recommended.

If you're in a rush and just want to get started, run cr.help() to show a quick intro.

Let's look at the crime data available

cr.sources() # returns a DataFrame
image

You'll get a DataFrame with basic info on all the sources. The index, Name is the nickname with which you'll refer to the dataset moving forward.


To examine a source, pass the name of the dataset to sources(). This will make an api request to get all of its metadata.

But first, please declare your App Token. Without it, you'll get warnings and throttling.

cr.set_token('XXXXXXXXXX')

Let's see the details on crime_vs_incarceration rate. All the info below is coming from Socrata's api.

cr.sources('crime_vs_incarceration') 
Total Crime Rate vs Incarceration Rate Chart
https://dev.socrata.com/foundry/data.colorado.gov/ae3x-wvn9

Total Crime includes: Violent crimes- Murder and non-negligent manslaughter, 
forcible rape, robbery, and aggravated assault. Property crimes - Burglary,
larceny/theft, and motor vehicle theft. National or state offense totals are
based on data from all reporting agencies and estimates for unreported areas.
Rates are the number of reported offenses per 100,000 population. These
figures are based on end of calendar year populations.

COLUMNS:
-------
Year
  Field:  year
  Type:   text
  Null:   0
  Count:  31

Population
  Field:  population
  Type:   number
  Null:   0
  Count:  31
  Avg:    4019137.064516129
  Max:    5187582
  Min:    3045000
  Sum:    124593249

Violent Crime Total
  Field:  violent_crime_total
  Type:   number
  Null:   0
  Count:  31
  Avg:    16445.54838709677
  Max:    20229
  Min:    13811
  Sum:    509812

(output is truncated to save space)

Here's what you'll see for text/categorical columns...

Race
  Field:  race
  Type:   text
  Null:   30
  Count:  209078
  ITEMS:
     White  (164276)
     Black  (39469)
     Asian/Pacific Islander  (2216)
     Unknown  (1901)
     American Indian/Alaskan Native  (1216)

Now we'll load some data

cr.load('arrest_demographics')
image

Returns 5-row preview by default, because some datasets have several million rows. To get the full dataset:

cr.load('arrest_demographics', full=True)
image

No proper documentation yet. View the source code if needed.

If there's a dataset not yet listed in our pre-defined sources, you can use the sodapy API wrapper to retrieve it manually.


Getting your App Token

Not required, but without one, you'll get warnings and be subject to "strict throttling limits" though it's unclear what those limits are.

1. Create a Socrata account

You just need an email and password.

This takes you to the Colorado signup page, but your account will be universal for Socrata, so it doesn't matter.

Sign up

2. Create App Token

After verifying your email and entering your account, hit Developer Settings on the left side of the page.

image

Click "Create New App Token"

image

Only two fields are required so you can skip the rest, but 'Application Name' must be unique.

image

Copy the key

image
Where'd you find the signup link?

Find a dataset you want to work with on Open Data Network, then select "View API", and you should get to a page like this. Scroll down and find the "Sign up for an app token!" button, and continue.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crime-0.0.5.tar.gz (10.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page