[4주차] 서울시 CCTV 현황 데이터 분석 -2

Gracie·2024년 5월 15일
0

1. CCTV 데이터 훑어보기

📌 CCTV가 최근 얼마나 증가했는지 궁금해!

#최근 증가율 컬럼 추가
CCTV_Seoul['최근증가율'] = (
    (CCTV_Seoul['2016년'] + CCTV_Seoul['2015년'] + CCTV_Seoul['2014년']) / 
    CCTV_Seoul['2013년도 이전'] * 100
)
CCTV_Seoul.sort_values(by = '최근증가율', ascending=False).head()

2. Population 데이터 훑어보기

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()

3. 두 데이터 합치기

데이터프레임 병합하는 방법
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='구별')

set_index()

data_result.set_index('구별', inplace = True)

corr()

  • 상관계수(correlation) 구하는 함수

  • 이산형 변수만 사용 가능(int, float)

    	data_result.corr()

profile
비전공자의 Data Analyst 도전기 🥹✨

0개의 댓글