pandas 例項操作 美國人口案例分析

2021-10-05 04:33:26 字數 3303 閱讀 3663

'''

需求: 匯入檔案,檢視原始資料

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

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

檢視存在缺失資料的列

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

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

合併各州面積資料areas

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

去除含有缺失資料的行

找出2023年的全民人口資料

計算各州的人口密度

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

'''import numpy as np

import pandas as pd

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

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

s_abbrevs = pd.read_csv(

'../datasets/state-abbrevs.csv'

)print

(s_abbrevs.head())

s_population = pd.read_csv(

'../datasets/state-population.csv'

)print

(s_population.head())

s_areas = pd.read_csv(

'../datasets/state-areas.csv'

)print

(s_areas.head())

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

abb_pop = pd.merge(s_abbrevs, s_population, left_on=

'abbreviation'

, right_on=

'state/region'

, how=

'outer'

)print

(abb_pop.head())

abb_pop = abb_pop.drop(columns=

'abbreviation'

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

'''state true

abbreviation true

state/region false

ages false

year false

population true

'''print

(abb_pop.isnull().

any(axis=0)

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

print

(abb_pop[abb_pop[

'state'

].isnull()]

['state/region'

].unique())

# ['pr' 'usa']

index_pr = abb_pop[abb_pop[

'state/region']==

'pr'

].index

print

(index_pr)

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

abb_pop.loc[index_pr,

'state']=

'puerto'

index_usa = abb_pop[abb_pop[

'state/region']==

'usa'

].index

print

(index_usa)

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

abb_pop.loc[index_usa,

'state']=

'america'

print

(abb_pop[abb_pop[

'state/region']==

'pr'

].head())

print

(abb_pop[abb_pop[

'state/region']==

'usa'

].head())

print

(abb_pop.isnull().

any(axis=0)

)# 合併各州面積資料areas

areas_abb_pop = pd.merge(s_areas, abb_pop, left_on=

'state'

, right_on=

'state'

, how=

'outer'

)print

(areas_abb_pop.head())

areas_abb_pop.set_index(

'state'

, inplace=

true

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

print

(areas_abb_pop.isnull().

any(axis=0)

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

areas_abb_pop.dropna(inplace=

true

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

query_2010 = areas_abb_pop.query(

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

)print

(query_2010.head())

# 計算各州的人口密度

midu = query_2010[

'population'

]/ query_2010[

'area (sq. mi)'

]print

(midu)

midu = midu.sort_values(ascending=

true

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

print

(midu.sort_values(

).tail())

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

print

(midu.sort_values(

).head(

))

趙本山給美國人測智商

趙本山 天也不早了,人也不少了,你們的歲數也不小了,這智商也該考了!高秀敏 春節坑人不算多,去年賣拐今年賣車,這美國的日子挺不錯,折騰折騰這幫傻大個兒!趙本山 第一號艾弗森,請聽題。說你有乙個私生子,今年剛6歲,以前他從沒見過你,現在你和一大幫人去看他,他一下子就撲到你的懷裡,叫你爸爸。這是咋回事?...

美國人太囂張 爆笑呀!

下面是乙份真實的海上無線電通訊的副本,記錄了在加拿大紐芬蘭島附近海域,一艘美 艦和加拿大人的對話。美方 為了避免相撞,請將你們的航向向北調整15度。完畢。加方 為了避免相撞,我們要求你們將航向向南調整15度。完畢。美方 這是一艘美國戰艦的艦長在和你們通話,我再說一遍,請你們調整航向!加方 重複,請你...

美國人這樣教育小學生

當我把九歲的兒子帶到美國,送他進那所離公寓不遠的美國小學的時候,我就象是把自己最心愛的東西交給了乙個我並不信任的人去保管,終日憂心忡忡。這是一種什麼樣的學校啊!學生可以在課堂上放聲大笑,每天至少讓學生玩二個小時,下午不到三點就放學回家,最讓我大開眼界的是沒有教科書。那個金髮碧眼的美國女教師看見了我兒...