EDA_범죄_002

이새롬·2023년 3월 1일
0

EDA

목록 보기
5/7
post-thumbnail

seaborn

.set_style("darkgrid")
옵션 : white, whitegrid, dark, darkgrid, ticks(pairplot에서만 쓰임★)

.boxplot(x축, y축,data)

< boxplot의 옵션 >
hue = "카테고리로 나뉠 수 있는 컬럼"
palette = "Set3"
Set1~3 들어갈 수 있는 컬러명

e.g>

sns.boxplot(x="day", y="total_bill",data=tips, hue="smoker",palette="Set3")
plt.show()```
(캡쳐)

.swarmplot(x축, y축,data)

swarmplot 옵션
color = "0.5"
0~1로 흑백진하기 정할 수 있음.

e.g>

sns.swarmplot(x="day",y="total_bill",data=tips, color="0.5")
plt.show()

(캡쳐)

boxplot with swarmplot

plt.figure(figsize=(8,6))
sns.boxplot(x="day",y="total_bill",data=tips)
sns.swarmplot(x="day",y="total_bill",data=tips, color="0.25")
plt.show()

이렇게 같이 쓰기도한다 (캡쳐)

.lmplot(x축, y축,data) : total_bill과 tip 사이 관계 파악

옵션
height=숫자
표의 사이즈

sns.lmplot(
    x="x",
    y="y", 
    data=anascombe.query("dataset == 'III'"), 
    robust=True,
    ci=None, 
    height=7, 
    scatter_kws={'s':50}) # ci 신뢰구간 선택
plt.show()

ci=None
신뢰구간?

scatter_kws={'s':50}
표에 그려진 점에 사이즈 조정

hue = "카테고리"
카테고리 옵션을 넣어 더 시각화하여 비교

robust=True

.heatmap(x축, y축,data)

<옵션>

annot=True
데이터 정보 보이기
imt = "d"
정수형으로 f는 실수형
cmap="YlGnBu"
컬러 옵션
linewidth = 숫자
컬러바들끼리의 간격

    plt.figure(figsize=(10,10))
    sns.heatmap(
        data=crime_anal_norm_sort[target_col],
        annot=True,
        fmt = "f" ,
        linewidth = 0.5,
        cmap="RdPu"
    )

.pairplot(데이터)
데이터에 대해 모든 경우의 수의 그래프를 시각화해줌
옵션

vars=["분석하고싶은 컬럼명","컬럼2"]

king="reg"
'scatter'
'kde'
'hist'
'reg' 회귀분석

height = 숫자

sns.pairplot(data=crime_anal_norm, vars=["살인","강도","폭력"], kind="reg", height=3);

folium

선언
import folium
import pandas as pd
import json

기본사용
folium.Map(location=[위도,경도], zoom_start=15)
zoom_startsms # 0~18
tiles="옵션"
옵션으로는 Stamen Toner, 디폴트는 OpenStreetMap

.save()
m.save("./folium(2).html")

folium.Marker()

  • 지도에 마커 생성
folium.Marker(
    location=(37.5449834,127.0552657),    : 위치
    popup="성수역",	: 마커 클릭시 뜨는 팝업
    tooltip="Icon custom",	: 마커에 마우스 올릴 시 뜨는 툴팁
    icon=folium.Icon(	: 아이콘 매서드
        color="purple",	: 마커 색깔
        icon_color="white",	: 아이콘 색깔
        icon="amazon",	: 아이콘 모양
        anle=50,		: 아이콘 각도
        prefix="fa"		: 아이콘 모양지정
    )
).add_to(m);		: 지도에 추가사항 보내주는 매서드

.add_to(지도)
지도에 추가사항 넣어주기

folium.ClickForMarker()

  • 지도 위에 마우스로 클릭 했을 때 마커를 생성해 줍니다
    location=[37.5449834,127.0552657],
    zoom_start=15,
    tiles="OpenStreetMap"
)
m.add_child(folium.ClickForMarker())

m.add_child(folium.ClickForMarker(popup="wow!"))
이렇게 내부에 popup 넣을 수 있음 (얘만 된다)

m.add_child(folium.LatLngPopup())
누르는 그곳에 위도, 경도를 보여줌.. (캡쳐)

Circle

folium.Circle(
    location=[ 37.5221, 127.0420],	: 위치
    radius=100,			: 반지름
    fill = True,			: 채움
    color = "darkred",		: 테두리 색
    fill_color="red",			: 원 안 색
    popup="circle",			
    tooltip="Circle",

).add_to(m)

.CircleMarker는 같은 기능을함. 사이즈가 Circle보다 큰 정도

제이슨파일 불러오기
geo_path="../data/02. skorea_municipalities_geo_simple.json"
geo_str = json.load(open(geo_path,encoding="utf-8"))

numpy axis = 1 행, pandas 에서는 axis = 1이 열
crime_anal_station["검거"] = np.mean(tmp, axis=1)

피봇테이블과 멀티인덱스 제거
crime_loc = crime_loc_raw.pivot_table(
crime_loc_raw, index="장소", columns="범죄명", aggfunc=[np.sum]
)
crime_loc.columns = crime_loc.columns.droplevel([0,1])

💬코멘트

그래프 그리기는 너무 재밌다.
그래프 그리는 것만 한 10일 했으면 좋겠다...
유용한 피봇테이블과도 친해져야 그래프도 그릴 수 있으니 골고루 연습해야할텐데

0개의 댓글