美國各州人口資料分析

2022-08-20 14:39:09 字數 4990 閱讀 8713

- 需求:

- 匯入檔案,檢視原始資料

- 將人口資料和各州簡稱資料進行合併

- 將合併的資料中重複的abbreviation列進行刪除

- 檢視存在缺失資料的列

- 找到有哪些state/region使得state的值為nan,進行去重操作

- 為找到的這些state/region的state項補上正確的值,從而去除掉state這一列的所有nan

- 合併各州面積資料areas

- 我們會發現area(sq.mi)這一列有缺失資料,找出是哪些行

- 去除含有缺失資料的行

- 找出2023年的全民人口資料

- 計算各州的人口密度

- 排序,並找出人口密度最高的五個州 df.sort_values()

# 1.匯入檔案,檢視原始資料

import numpy as np

from pandas import dataframe,series

import pandas as pd

abb = pd.read_csv('./data/state-abbrevs.csv')

pop = pd.read_csv('./data/state-population.csv')

area = pd.read_csv('./data/state-areas.csv')

# 檢視的資料

abb.head(1)

state abbreviation

0 alabama al

pop.head(1)

state/region ages year population

0 al under18 2012 1117489.0

# 2 將人口資料和各州簡稱資料進行合併

abb_pop = pd.merge(abb,pop,left_on='abbreviation',right_on='state/region',how='outer')

abb_pop.head(3)

state abbreviation state/region ages year population

0 alabama al al under18 2012 1117489.0

1 alabama al al total 2012 4817528.0

2 alabama al al under18 2010 1130966.0

# 3 將合併的資料中重複的abbreviation列進行刪除

abb_pop.drop(labels='abbreviation',axis=1,inplace=true)

# 4 檢視存在缺失資料的列

abb_pop.isnull().any(axis=0)

state true

state/region false

ages false

year false

population true

dtype: bool

# 5 找到有哪些state/region使得state的值為nan,進行去重操作

# 找到哪些簡稱 的全稱為空 (就是先找到state中的空值 ,通過state在找到state/region)

# 把簡稱找到以後 進行去重

# 找全稱為空,用該資料找到簡稱,然後去重

abb_pop.head(5)

state state/region ages year population

0 alabama al under18 2012 1117489.0

1 alabama al total 2012 4817528.0

2 alabama al under18 2010 1130966.0

3 alabama al total 2010 4785570.0

4 alabama al under18 2011 1125763.0

# 5.1.找出state中的空值

abb_pop['state'].isnull()

# 5.2.將布林值作為元資料的行索引:定位到所有state為空對應的行資料

abb_pop.loc[abb_pop['state'].isnull()]

# 5.3.將空對應的行資料中的簡稱這一列的資料取出進行去重操作

abb_pop.loc[abb_pop['state'].isnull()]['state/region'].unique()

# array(, dtype=object)

# 6 為找到的這些state/region的state項補上正確的值,從而去除掉state這一列的所有nan

# 6.1.找出usa對應state列中的空值

# 返回的是bool值

abb_pop['state/region'] == 'usa'

# 6.2.取出usa對應的行資料

abb_pop.loc[abb_pop['state/region'] == 'usa']

indexs = abb_pop.loc[abb_pop['state/region'] == 'usa'].index

indexs

int64index([2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506,

2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517,

2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528,

2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539,

2540, 2541, 2542, 2543],

dtype='int64')

# 6.3.將usa對應的空值覆蓋成對應的值

abb_pop.loc[indexs,'state'] = 'united states'

# 6.4 找到pr所對應的行資料

abb_pop['state/region'] == 'pr'

abb_pop.loc[abb_pop['state/region'] == 'pr']

indexs = abb_pop.loc[abb_pop['state/region'] == 'pr'].index

abb_pop.loc[indexs,'state'] = 'ppprrr'

area.head()

state area (sq. mi)

0 alabama 52423

1 alaska 656425

2 arizona 114006

3 arkansas 53182

4 california 163707

# 7 合併各州面積資料areas

abb_pop_area = pd.merge(abb_pop,area,how='outer')

abb_pop_area.head()

state state/region ages year population area (sq. mi)

0 alabama al under18 2012.0 1117489.0 52423.0

1 alabama al total 2012.0 4817528.0 52423.0

2 alabama al under18 2010.0 1130966.0 52423.0

3 alabama al total 2010.0 4785570.0 52423.0

4 alabama al under18 2011.0 1125763.0 52423.0

# 8 我們會發現area(sq.mi)這一列有缺失資料,找出是哪些行

# 9 去除含有缺失資料的行

abb_pop_area['area (sq. mi)'].isnull()

abb_pop_area.loc[abb_pop_area['area (sq. mi)'].isnull()]

# 獲取行索引

indexs = abb_pop_area.loc[abb_pop_area['area (sq. mi)'].isnull()].index

abb_pop_area.drop(labels=indexs,axis=0,inplace=true)

# 10 找出2023年的全民人口資料

# query 做條件查詢

df_2010 = abb_pop_area.query('year == 2010 & ages == "total"')

df_2010

# 11 計算各州的人口密度

abb_pop_area['midu'] = abb_pop_area['population'] / abb_pop_area['area (sq. mi)']

abb_pop_area.head(1)

state state/region ages year population area (sq. mi) midu

0 alabama al under18 2012.0 1117489.0 52423.0 21.316769

# 12 排序,並找出人口密度最高的五個州   df.sort_values()

abb_pop_area.sort_values(by='midu',axis=0,ascending=false)

資料分析之分析美國人口

資料 需求 匯入檔案,檢視原始資料 將人口資料和各州簡稱資料進行合併 將合併的資料中重複的abbreviation列進行刪除 檢視存在缺失資料的列 找到有哪些state region使得state的值為nan,進行去重操作 為找到的這些state region的state項補上正確的值,從而去除掉s...

資料分析6 人口分析

需求 匯入檔案,檢視原始資料 將人口資料和各州簡稱資料進行合併 將合併的資料中重複的abbreviation列進行刪除 檢視存在缺失資料的列 找到有哪些state region使得state的值為nan,進行去重操作 為找到的這些state region的state項補上正確的值,從而去除掉stat...

資料分析 資料分析概述

了解業務 了解資料 確認業務和資料 預期分析和管理 資料分析方式01.了解資料資料 1.測量標度型別 屬性本源並不是數字或者符號,通過測量標度將數值或者符號和物件的屬性建立關聯。屬性的型別 測量尺度 nominal 標稱 等於或者不等於 一對一的變換 ordinal 序數 大於或者小於 單調函式的變...