📌 CCTV가 최근 얼마나 증가했는지 궁금해!
#최근 증가율 컬럼 추가
CCTV_Seoul['최근증가율'] = (
(CCTV_Seoul['2016년'] + CCTV_Seoul['2015년'] + CCTV_Seoul['2014년']) /
CCTV_Seoul['2013년도 이전'] * 100
)
CCTV_Seoul.sort_values(by = '최근증가율', ascending=False).head()
raw data 분석
1. 원본 excel 데이터를 보니 1, 2, 3행이 병합되어 머리글로 쓰이고 있다.
2. 인구 수가 계/남/여로 나누어져 있다.
📌 3행부터 데이터를 가져와서, colums을 다시 설정해주고,
📌 현재 프로젝트에서 남/여 값은 필요없기 때문에 '계' 값만 불러올 것임!
pop_Seoul = pd.read_excel(
"../data/01. Seoul_Population.xls", header=2, usecols= 'B, D, G, J, N'
)
pop_Seoul.rename(
columns = {
pop_Seoul.columns[0]: '구별',
pop_Seoul.columns[1]: '인구수',
pop_Seoul.columns[2]: '한국인',
pop_Seoul.columns[3]: '외국인',
pop_Seoul.columns[4]: '고령자',
},
inplace = True
)
pop_Seoul.drop([0], axis = 0, inplace = True)
pop_Seoul.head()
📌구별로 외국인, 고령자 비율이 궁금하고, 인구 수가 많은 구의 데이터를 먼저 보고싶어!
pop_Seoul['외국인비율'] = pop_Seoul['외국인'] / pop_Seoul['인구수'] * 100
pop_Seoul['고령자비율'] = pop_Seoul['고령자'] / pop_Seoul['인구수'] * 100
pop_Seoul.sort_values(['인구수'], ascending = False).head()
데이터프레임 병합하는 방법
1) pd.merge()
- 두 개의 df에서 컬럼이나 인덱스를 기준으로 병함하는 방법
- 기준이 되는 컬럼, 인덱스를
key
값이라고 하고,key
값은 두 df에 모두 포함되어 있어야 함- how:inner(교집합), left, right, outer(합집합) -> 없는 값은 NaN으로 반환
pd.merge(left, right, how = 'inner', on='key') #key라는 컬럼을 기준으로 병합해라
📌두 데이터 프레임에 모두 포함되 '구별'을 기준으로 데이터를 합치면 되겠군!
data_result = pd.merge(CCTV_Seoul, pop_Seoul, on='구별')
data_result.set_index('구별', inplace = True)
상관계수(correlation) 구하는 함수
이산형 변수만 사용 가능(int, float)
data_result.corr()