資料分析6 人口分析

2021-10-11 20:50:47 字數 3742 閱讀 3773

- 需求:

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

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

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

- 檢視存在缺失資料的列

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

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

- 合併各州面積資料areas

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

- 去除含有缺失資料的行

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

- 計算各州的人口密度

- 排序,並找出人口密度最高的州

import numpy as np

import pandas as pd

from pandas import dataframe

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

abb = pd.read_csv(

'./data/state-abbrevs.csv'

)#state(州的全稱)abbreviation(州的簡稱)

area = pd.read_csv(

'./data/state-areas.csv'

)#state州的全稱,area (sq. mi)州的面積

pop = pd.read_csv(

'./data/state-population.csv'

)#state/region簡稱,ages年齡,year時間,population人口數量

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

abb_pop = pd.merge(abb,pop,left_on=

'abbreviation'

,right_on=

'state/region'

,how=

'outer'

)abb_pop.head(

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

abb_pop.drop(labels=

'abbreviation'

,axis=

1,inplace=

true

)abb_pop.head(

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

#方式1:isnull,notll,any,all

abb_pop.isnull().

any(axis=0)

#state,population這兩列中是存在空值

#方式2:

abb_pop.info(

)#找到有哪些state/region使得state的值為nan,進行去重操作(將state中的空值對應的簡稱找到,且對簡稱進行去重)

abb_pop.head(

)#思路:可以將state這一列中的空值對應的行資料取出,從該行資料中就可以取出簡稱的值

#1.將state中的空值定位到

abb_pop[

'state'

].isnull(

)#2.將上述的布林值作為源資料的行索引

abb_pop.loc[abb_pop[

'state'

].isnull()]

#將state中空對應的行資料取出

#3.將簡稱取出

abb_pop.loc[abb_pop[

'state'

].isnull()]

['state/region'

]#4.對簡稱去重

abb_pop.loc[abb_pop[

'state'

].isnull()]

['state/region'

].unique(

)#結論:只有pr和usa對應的全稱資料為空值

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

#思考:填充該需求中的空值可不可以使用fillna?

# - 不可以。fillna可以使用空的緊鄰值做填充。fillna(value='***')使用指定的值填充空值

# 使用給元素賦值的方式進行填充!

#1.先給usa的全稱對應的空值進行批量賦值

#1.1將usa對應的行資料找出(行資料中就存在state的空值)

abb_pop[

'state/region']==

'usa'

abb_pop.loc[abb_pop[

'state/region']==

'usa'

]#將usa對應的行資料取出

#1.2將usa對應的全稱空對應的行索引取出

indexs = abb_pop.loc[abb_pop[

'state/region']==

'usa'

].index

abb_pop.iloc[indexs]

abb_pop.loc[indexs,

'state']=

'united states'

#2.可以將pr的全稱進行賦值

abb_pop[

'state/region']==

'pr'

abb_pop.loc[abb_pop[

'state/region']==

'pr'

]#pr對應的行資料

indexs = abb_pop.loc[abb_pop[

'state/region']==

'pr'

].index

abb_pop.loc[indexs,

'state']=

'ppprrr'

#合併各州面積資料areas

abb_pop_area = pd.merge(abb_pop,area,how=

'outer'

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

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

)#找出2023年的全民人口資料(基於df做條件查詢)

abb_pop_area.query(

'ages == "total" & year == 2010'

)#計算各州的人口密度(人口除以面積)

abb_pop_area[

'midu'

]= abb_pop_area[

'population'

]/ abb_pop_area[

'area (sq. mi)'

]abb_pop_area

#排序,並找出人口密度最高的州

abb_pop_area.sort_values(by=

'midu'

,axis=

0,ascending=

false

).iloc[0]

['state'

]

資料分析之分析美國人口

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

美國各州人口資料分析

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

Python資料分析 6

3.資料處理 清洗 f open 商鋪資料.csv if 條 in s return int s.split 0 else return 缺失資料 def fprice s if in s return float s.split 1 else return 缺失資料 def fcommentl s...