choropleth key_on 설정값 문의
2096
작성한 질문수 6
강사님 안녕하세요
[7/9] Geo JSON 값 이해하고 choropleth 그려보기
강의 보면서 choropleth 실습하고 있습니다. 여기서 key_on은 데이터 구조를 따라서 지정하는 줄 알았습니다.
그래서 features.properties.SIG_KOR_NM 이렇게 했는데
{'type': 'FeatureCollection',
'features': [{'type': 'Feature',
'properties': {'SIG_CD': '11320',
'SIG_KOR_NM': '도봉구',
'SIG_ENG_NM': 'Dobong-gu',
'ESRI_PK': 0,
'SHAPE_AREA': 0.00211,
'SHAPE_LEN': 0.239901},
아래와 같은 에러가 발생하더군요.
AttributeError: 'NoneType' object has no attribute 'get'
그래서 여러가지 시도해보던 결과
features에서 s를 빼고 하니까 되던데. feature(지정값).properties.SIG_KOR_NM (실제경로) 이렇게 되나요?
답변 6
2
안녕하세요.
제가 질문의 내용을 제대로 이해 못 했었네요.
아래 내용은 folium 공식문서 입니다. 여기에서 features 로 되어 있더라도 아래와 같은 표기법을 갖도록 하고 있습니다.
foilum 내부에서 아래와 같은 형식을 사용하고 있기 때문에 형식을 맞춰 써달라는 것인데요.
key_on: string, default None Variable in the `geo_data` GeoJSON file to bind the data to. Must start with 'feature' and be in JavaScript objection notation. Ex: 'feature.id' or 'feature.properties.statename'.
그래서 json 문법에 맞지 않는다고 좋은 의문을 가져주신거 같습니다.
개별 지역의 값을 가져오기 위해서는 feautures 에서 인덱싱으로 값을 가져오는게 맞으나 내부에서 위와 같은 표기법을 써달라고 하고 있습니다.
2
빠른 답변 감사합니다.
아래 값을 이렇게 설정해봤는데 역시 안되네요.
key_on='features.0.properties.name',
이건 강사님이 제공해주신 json파일입니다.
강동구를 호출하려면 geo_json["features"][0]['properties']["name"] 이렇게 호출하는게 맞습니다.
강사님 강의영상에서 제공해주신 답안을 보면 여기도 feature (복수가 아닌 단수)로 설정을 하셨습니다.
말씀하신데로 key_on이 JSON 경로가 들어간다면 강동구는 0번째니
["features"][0]['properties']["name"]
나머지도 그려주기 위해 for문을 사용하여 이런식으로 Choropleth를 매번 호출해야 하지 않나요?
for i in range(0, len(geo_json)):
folium.Choropleth(
geo_data=geo_json,
name='choropleth',
data=df_vs,
columns=['구', '매장수비교'],
key_on='features.' + i + '.properties.name',
fill_color='BuGn',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='매장수 비교'
).add_to(m)
잘 이해가 안됩니다. ㅠㅠ
1
감사합니다. 그래서 그런거였군요^^
수업영상을 혹시 개선하실 생각이시면 key_on은 json문법으로 트래킹하는 것으로 설명이 되어 있어 잘못이해할 소지가 있네요.
항상 좋은 영상!! 그리고 빠른 질의응대 감사합니다.
좋은 하루 되세요~
1
안녕하세요.
수업에서 제공한 json 파일을 사용하셨다면 아래와 같이 불러와야 합니다.
features[0].properties.SIG_KOR_NM
왜냐면 아래와 같이 features 항목에 대괄호가 있는데요.
'features': [{'type': 'Feature',
파이썬에서는 [ ] 안의 값을 인덱싱으로 가져올 수 있습니다.
[ ]안에 값을 바로 key 값으로 접근할 수 없습니다.
feature 로 사용하신건 아마도 인덱싱 후 해당 값을 feature 로 받아서 사용하신것 같습니다.
패키지 설치 에러 ydata-profiling
0
120
2
자세한 설명 부탁드려요 ㅜ
0
176
2
seaborn 라이브러리 호출하였으나 그래프가 안 그려져요
0
287
2
value_counts와 count 차이
0
341
2
안녕하세요 데이터 최신과 관련해서 문의드립니다.
0
205
3
scatterplot질문
0
122
1
강의 화면이 안나옵니다
0
164
2
4분12초 2013년부터 데이터가 없으면 어떻게하나요?..
0
188
2
에러 메시지
1
303
2
그래프 색이 동일하게 나옵니다.
0
308
2
시각화 라이브러리 비교
0
382
2
주피터 노트북 설치
0
390
1
2. 상가 기술통계 아웃풋 자료에서 오류가 납니다
0
226
1
14. distplot g = sns.FacetGrid(df_last, row="지역명", height=1.7, aspect=4) g.map(sns.distplot, "평당분양가격", hist=False, rug=True); 오류
0
178
1
group by agg function failed 에러
0
687
2
빈도수가 1000개 이상인 데이터를 따로 담을 때 코드 질문 있습니다.
0
288
2
주피터 노트북 실행 했는데 앞에 *가 생기고 결과가 나오지 않아요
0
363
3
get_string함수에서 문자 'nan'
0
200
1
seaborn X축 시작 지점 조정 질의의 건
0
213
1
14강 distplot 질의
0
289
1
nbextension 설치 및 셋팅 후 적용이 안되는 이슈
0
477
1
corr = df.corr() 입력시 오류
1
373
1
keyword grid_b is not recognized
0
336
1
%ls data 매직커맨드 사용시 한글 깨짐
0
293
1





