[제로베이스] 6주차_EDA 05

해오름·2023년 3월 7일
0

[zb]

목록 보기
11/18
post-thumbnail

📌3/7 영상 강의 EDA 범죄6, 웹데이터 1,2

10. 서울시 범죄 현형에 대한 지도 시각화

1. 5대 범죄 건수 지도 시각화

my_map = folium.Map(
    location=[37.5502, 126.982], # 처음 뜨는 지도 값
    zoom_start=11,
    tiles="Stamen Toner"
    
)
folium.Choropleth(
    geo_data = geo_str, # 우리나라 경계선 좌표값이 담긴 데이터
    data=crime_anal_norm["범죄"],
    columns=[crime_anal_norm.index, crime_anal_norm["범죄"]],
    key_on="feature.id",
    fill_color="PuRd",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="정규화된 5대 범죄 발생 건수"  
).add_to(my_map)

my_map

2. 인구 대비 범죄 발생 건수 시각화


tmp_criminal = crime_anal_norm["범죄"] / crime_anal_norm["인구수"]

my_map = folium.Map(
    location=[37.5502, 126.982],
    zoom_start=11,
    tiles="Stamen Toner"
    
)
folium.Choropleth(
    geo_data = geo_str, # 우리나라 경계선 좌표값이 담긴 데이터
    data=tmp_criminal,
    columns=[crime_anal_norm.index, tmp_criminal],
    key_on="feature.id",
    fill_color="PuBu",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="인구 대비 범죄 발생 건수"  
).add_to(my_map)

my_map

🔥왜 검은색이 표시 되는지 모르겠다..

3. 경찰서 위치 마커 표시


my_map = folium.Map(
    location=[37.5502,126.982], zoom_start=11
)

for idx,rows in crime_anal_statoin.iterrows():
    folium.Marker(
        location=[rows["lat"], rows["lng"]]
    
    ).add_to(my_map)
    
my_map

4. 검거에 값을 곱한 뒤 원의 넓이 적용

my_map = folium.Map(
    location=[37.5502,126.982], zoom_start=11
)

folium.Choropleth(
    geo_data=geo_str,
    data=crime_anal_norm["범죄"],
    columns=[crime_anal_norm.index, crime_anal_norm["범죄"]],
    key_on="feature.id",
    fill_color="PuRd",
    fill_opacity=0.7,
    line_opacity=0.2,
    
).add_to(my_map)



for idx,rows in crime_anal_statoin.iterrows():
    folium.CircleMarker(
        location=[rows["lat"], rows["lng"]],
        radius=rows["검거"] * 50,
        popup=rows["구별"] + " : " + "%.2f" %rows["검거"],
        color = "#3186cc",
        fill=True,
        fill_colir="#3186cc"
    
    ).add_to(my_map)
    
my_map

11. 서울시 범죄 현황 발생 장소 분석

crime_loc_norm_sort=crime_loc_norm.sort_values("종합", ascending=False) #내림차순

def drawGraph():
    plt.figure(figsize=(10,10)),
    sns.heatmap(
        data=crime_loc_norm_sort,
        cmap="RdPu",
        annot=True,
        fmt='0.3f',
        annot_kws=None,
        linewidths=0.8)
    plt.title("범죄 발생 장소")
    plt.show
    
drawGraph()

웹 데이터 수집하고 정리하기

beautifulSoup Basic

    -conda install -c anaconda beautifulsoup4
    - pip install beautifulsoup4

태그 찾기

  • head 태그 확인
soup.head
  • body 태그 확인
soup.body
  • find()
    p 태그 확인
    처음 발견한 p 태그만 출력
  • 속성값(class)으로 특정 문단을 찾을 수 있다
 soup.find("p", class_="inner-text second-item")

📌파이썬 예약어
class, id, def, list, int, tuple...
최대한 이름이 겹치지 않게 약간의 변화를 줘서 사용하는게 코드가 꼬이지 않는다.

  • 다중 조건
soup.find("p", {"class":"inner-text first-item", "id":"first"})

  • find_all()
soup.find_all("p")

 여러개의 태그를 반환
 리스트 형태로 반환한다
  • 특정 태그 확인
soup.find_all(id= "pw-link")[0].text

  리스트형태 반환이라 index가 있어야 text 반환
  • p 태그 리스트에서 텍스트 속성만 출력
for each_tag in soup.find_all("p"):
    print("=" * 50)
    print(each_tag.text)
  • a 태그에서 href 속성값에 있는 값 추출
links = soup.find_all("a")
links[0].get("href"), links[1]["href"]

예제1. 네이버 금융

  • !pip install requests
  • find(), find_all()
  • select, select_one
  • find(), select_one : 단일 선택
  • find_all(), select : 다중 선택

👍마무리
EDA 시각화에서 엄청 느려지더니 .. 진도도 밀리고 스터디노트도 작성하지 못했다
엇 하는순간 이렇게 미끄러지는구나
어떡하지 망한건가
그래도 해야지 헝
스터디 노트 정리 잘하고싶다..
vscode에서 dataFrame 보여지는게 신기했다. 생긴건 파이참같아서
아직 시각화 부분이 정확하게 개념이 정립이 안돼서 뒤죽박죽인데 지금 바로 잡을 시간은 없을거 같고 우선 앞만 보고 가야겠다

profile
study note

0개의 댓글