본문 바로가기
Data-driven Methodology/DS (Data Science)

[Data Science] 공공포털 데이터 (6)

by goatlab 2022. 9. 22.
728x90
반응형
SMALL

원하는 데이터 추출

 

df["상권업종중분류명"] == "약국/한약방"
0        False
1        False
2        False
3        False
4        False
         ...  
20053    False
20054    False
20055    False
20056    False
20057    False
Name: 상권업종중분류명, Length: 20058, dtype: bool
df[df["상권업종중분류명"] == "약국/한약방"]

# copy를 통해 df_medical이라는 변수에 지정
df_medical = df[df["상권업종중분류명"] == "약국/한약방"].copy()

 

원하는 데이터 추출 : 여러개 조건 사용

 

# 1개 조건
df[df["상권업종대분류명"] == "의료"]]

 

상권업종대분류명이 의료인 데이터의 상권업종중분류명을 가져오고 싶을 때 loc를 사용한다.

 

# 2개 조건
df.loc[df["상권업종대분류명"] == "의료"]["상권업종중분류명"]

df.loc[df["상권업종대분류명"] == "의료", "상권업종중분류명"]

 

이 코드는 위와 같은 결과를 출력한다. 그런데 첫번째 방법은 의료로 검색하고, 또 상권업종중분류명에 검색하므로 속도가 느리다. 따라서, 이 방법을 권장한다.

 

조건에 맞는 데이터 개수 세기

 

value_counts로 데이터의 갯수를 셀 수 있다.

 

df.loc[df["상권업종대분류명"] == "의료", "상권업종중분류명"].value_counts()

m = df["상권업종대분류명"] == "의료"
df.loc[m, "상권업종중분류명"].value_counts()

 

boolean indexing을 해서 코드를 작성할 수도 있다. 위와 결과는 같다.

 

특정값 색인하기

 

상권업종중분류명이 유사의료업인 데이터인지 체크한다.

 

df["상권업종중분류명"] ==  "유사의료업"

 

상권업종중분류명이 유사의료업인 데이터만 불러 온다.

 

df[df["상권업종중분류명"] ==  "유사의료업"]

 

데이터의 크기인 행과 열의 수를 확인한다.

 

df[df["상권업종중분류명"] ==  "유사의료업"].shape
df["상호명"].value_counts().tail()

df_medi["상호명"].value_counts().head(10)

 

여러 조건으로 색인하기

 

상권업종소분류명이 약국인지 확인한다.

 

df["상권업종소분류명"] == "약국"

 

시도명이 서울특별시인지 확인한다.

 

df["시도명"] == "서울특별시"

 

상권업종소분류명이 약국인지 그리고 시도명이 서울특별시인지 확인한다.

 

(df["상권업종소분류명"] == "약국") & (df["시도명"] == "서울특별시")

df_seoul_drug = (df["상권업종소분류명"] == "약국") & (df["시도명"] == "서울특별시")
print(df_seoul_drug.shape)
df_seoul_drug

728x90
반응형
LIST