관리 메뉴

RUBY

[CCTV] 4.Pandas 데이터 merge를 이용해서 병합하기 본문

데이터 분석/EDA_웹크롤링_파이썬프로그래밍

[CCTV] 4.Pandas 데이터 merge를 이용해서 병합하기

ruby-jieun 2023. 2. 1. 00:55

 

 

 

서울시 CCTV 분석하기 프로젝트
4.Pandas 데이터 merge를 이용해서 병합하기


 

 

 

 

1. merge를 이용한 데이터 병합을 진행해보자

left = pd.DataFrame(
    {
        "key":["K0", "K4", "K2", "K3"],
        "A":["A0", "A1", "A2", "A3"],
        "B":["B0", "B1", "B2", "B3"],
    }
)

right = pd.DataFrame(
    {
        "key":["K0", "K1", "K2", "K3"],
        "C":["C0", "C1", "C2", "C3"],
        "D":["D0", "D1", "D2", "D3"],
    }
)

 

 

 

 

2. left 데이터

 

left

 

 

 

 

3.right 데이터

right

 

 

 

 

4.key 컬럼 기준으로 병합

pd.merge(left, right, on="key")

 

 

 

 

 

5. left에 key를 기준으로 right병합

pd.merge(left, right, how="left", on="key")

 

 

 

 

6. right에 key를 기준으로 left병합

pd.merge(left, right, how="right", on="key")

 

 

 

 

7. 둘 다 손상되지 않도록 key를 기준으로 병합

pd.merge(left, right, how="outer", on="key")

 

 

 

 

 

8. key 컬럼에서 두 데이터에 공통분모만 병합

pd.merge(left, right, how="inner", on="key")

 

 

 

 

9. 기존에 갖고 있던 데이터도 합쳐본다.

data_result = pd.merge(CCTV_Seoul, pop_Seoul, on="구별")
data_result.head()

 

 

 

10. 필요없는 컬럼을 제거한다.

del data_result["2017년"]
del data_result["2018년"]
del data_result["2019년"]
del data_result["2020년"]
del data_result["2021년"]
data_result.head()

 

 

 

11.

Pandas Index 지정

데이터를 정리하는 과정에서 index를 재지정할 때가 있다.

여기서는 unique한 데이터인 구별로 index를 잡자

index를 재지정하는 명령은 set_index이다.

data_result.set_index("구별", inplace=True)
data_result.head()

 

 

 

 

12. 

데이터의 관계를 찾을 때, 최소한의 근거가 있어야 해당 데이터를 비교하는 의미가 존재한다.

상관계수를 조사해서 0.2 이상의 데이터를 비교하는 것은 의미가 있다.

data_result.corr(numeric_only = True)

 

 

 

13.

CCTV 전체 수(소계)와 가장 상관관계가 있는 데이터는 인구수이다.

그러므로 구별 인구대비 CCTV현황을 분석해서 상대적으로 CCTV가 적거나 많은 구를 찾는 것은 의미를 가진다.

CCTV 비율을 만들어 CCTV 비율이 높은 구를 보자

 

 

 

 

14. CCTV 비율이 낮은 구를 보자

data_result.sort_values(by="CCTV비율", ascending=True).head(5)
Comments