Reispatronen

US Census-gegevens analyseren in Python

Lee Hachadoorian

Asst. Professor of Instruction, Temple University

Tabellen woon-werkverkeer

Onderwerpen woon-werkverkeer

  • Vervoer (auto, ov, enz.)
  • Reistijd
  • Vertrek-/aankomsttijd werk

Geografie woon-werkverkeer

  • Woonplaats: waar mensen slapen
  • Werkplek: waar mensen werken; te gebruiken om beroepsbevolking per county, tract, enz. te bepalen
US Census-gegevens analyseren in Python

Congestieheffing in New York City

  • Wordt besproken in NYC (begin 2019)
  • Eerdere poging mislukt (2007)
  • Zorgen over kosten voor lage en middeninkomens

Luchtfoto van auto's en taxi's op een straat in New York City.

1 Foto door Brian Jeffery Beggerly (CC BY 2.0)
US Census-gegevens analyseren in Python

Tabel B08519: Vervoer naar werk naar verdiensten in de afgelopen 12 maanden (in 2017, voor inflatie gecorrigeerd) voor werkpleklocatie

Totaal
    $1 tot $9.999 of verlies
    $10.000 tot $14.999
    $15.000 tot $24.999
    $25.000 tot $34.999
    $35.000 tot $49.999
    $50.000 tot $64.999
    $65.000 tot $74.999
    $75.000 of meer
Auto, pick-up of busje – alleen gereden
    <herhaal inkomenscategorieën>
Auto, pick-up of busje – carpool
    <herhaal inkomenscategorieën>
Openbaar vervoer (excl. taxi)
    <herhaal inkomenscategorieën>
enz.
US Census-gegevens analyseren in Python

API-respons

print(r.json())
[['B08519_011E', 'B08519_012E', 'B08519_013E', 'B08519_014E', 'B08519_015E',
  'B08519_016E', 'B08519_017E', 'B08519_018E', 'B08519_020E', 'B08519_021E', 
  ... 
  'B08519_061E', 'B08519_062E', 'B08519_063E', 'state', 'county'], 
 ['10927', '9172', '19659', '22110', '32287', 
  '32977', '15693', '106972', '3663', '2518', 
  ...
  '7457', '2664', '20684', '36', '061']]
US Census-gegevens analyseren in Python

Data hervormen

# Read data row into list
data_row = r.json()[1][:-2]

# Break data row into list of lists iter_len = 8 data = [data_row[i:i+iter_len] for i in range(0, len(data_row), iter_len)]
print(data)
[['10927', '9172', '19659', '22110', '32287', '32977', '15693', '106972'], 
['3663', '2518', '5484', '5625', '8028', '7990', '3369', '22958'], 
['139358', '97178', '200514', '184510', '255491', '240973', '116673', '700808'], 
['16743', '9117', '15900', '13710', '17442', '20206', '10370', '85879'], ...]
US Census-gegevens analyseren in Python

De DataFrame bouwen

# Define row names and column names
modes = ["drove_alone", "carpooled", "public", "walked", "taxi", 
         "worked_at_home"]

incomes = ["0k", "10k", "15k", "25k", "35k", "50k", "65k", "75k"]
# Create DataFrame manhattan = pd.DataFrame(data=data, index=modes, columns=incomes) manhattan = manhattan.astype(int)
US Census-gegevens analyseren in Python

De DataFrame bouwen

print(manhattan)
                    0k    10k     15k   ...       50k     65k     75k
drove_alone      10716   8965   19294   ...     31502   15519  104078
carpooled         3740   2451    5852   ...      7994    3438   22625
public          140957  99474  197241   ...    235158  111959  654800
walked           16795   9045   15451   ...     20704   10663   83681
taxi              3201   2209    4515   ...      6551    3029   35572
worked_at_home    6854   3885    5489   ...      7776    2809   19598

[6 rows x 8 columns]
US Census-gegevens analyseren in Python

De heatmap maken

# Create heatmap of commuters by mode by income
sns.heatmap(manhattan, annot=manhattan // 1000, fmt="d", cmap="YlGnBu")

Een heatmap met rijen vervoerswijzen en kolommen inkomenscategorieën, ingekleurd naar aantal forenzen per cel. De rij openbaar vervoer is donkerder; de cel voor openbaar vervoer met inkomens boven $75.000 is het donkerst.

US Census-gegevens analyseren in Python

Laten we oefenen!

US Census-gegevens analyseren in Python

Preparing Video For Download...