데이터 과학 = 마케팅, 딥러닝, 시각화 등 범위가 많이 넓음
오늘은 데이터를 모아서 현상, 인식, 가정을 확인하려는 도구로 사용할 것
-강남 3구가 범죄로부터 안전한가?
-GoogleMaps, Folium, Seaborn, Pandas의 Pivot_table 등을 익히는 것
pd.read_csv("../~~~.csv", thousand=",", encoding="euc-kr")
--
crime_raw_data["죄종"].unique()
-5대범죄 + nan이 들어가있다.
->
crime_raw_data[crime_raw_data["죄종"].isnull()]
-죄종에서 nan만 추출
: 실제 데이터(310) 이후 엄청 많은 65535개의 nan데이터가 보인다.
: index가 65535의 크기를 가지면서 실제 value와의 크기 차이가 발생.
: nan을 제거하는게 아니라 nan이 아닌 데이터만 다시 가져오기
->
crime_raw_data =crime_raw_data[crime_raw_data["죄종"].notnull()]
crime_raw_data.info()
= 단순 나열된 데이터(raw)를 원하는 데이터열로 재배치 할 필요가 있다
Pandas Pivot Table
pd.pivot_table(df, index=["name", "rep", "manager"], values=["price"])
= index: raw데이터를 인덱스로 두고 재정렬, 여러개 지정가능
= values: 원하는 숫자형데이터만 가지고 정렬할 수 있음
pd.pivot_table(df, ..., values=["price"], aggfunc=np.sum, len)
= values에 함수를 적용할 수 있다.
: 중복된 데이터 정렬하는 기본값은 '평균'
: 합산 등의 다른 함수를 적용할 때는 aggfunc 옵션을 지정
= len
: 개수도 적용가능
pd.pivot_table(df, columns=["product"], fill_value=0)
= 분류를 지정 : product값으로 분류
= nan -> 0 : fill_value
crime_station.columns
-> Multi Columns Index
= pivot_table 적용하면 column이나 index가 다중으로 잡힌다
레벨 0 = sum
레벨 1 = 건수
레벨 2 = 강도
레벨 3 = 검거
crime_station["sum", "건수", "강도", "검거"]
-> Multi Index에 대한 접근
crime_station.columns = crime_station.columns.droplevel([0, 1])
-> 다중 컬럼에서 특정 컬럼 제거
[n ** 2 for n in range(0, 10)]
0부터 9까지를 n에 넣고 제곱해서 [리스트]에 넣어라
= [0, 1, 4, 9, 16, 25, 36, 48, 64, 81]
gmaps.geocode("서울영등포경찰서", language="ko")
print(tmp[0].get("geometry")["location"]["lat"])
띄어쓰기로 구분돼있으니까
tmp.split()으로 단어 단위로 구분
tmp.split(2)로 구 이름만 가져옴