import pandas as pd
import folium
# 데이터 불러오기
bike_data = pd.read_csv('./bike202406.csv')
# 서울 중심 좌표로 지도 생성
seoul_map = folium.Map(location=[37.5665, 126.9780], zoom_start=12)
# 따릉이 대여소 위치를 지도에 점으로 표시
for idx, row in bike_data.iterrows():
folium.CircleMarker(
location=[row['위도'], row['경도']], # 위도, 경도 컬럼명 확인 필요
popup=row['보관소(대여소)명'],
radius=2 # 대여소 이름이 있는 컬럼명
).add_to(seoul_map)
seoul_map
#seoul_map.save('seoul_bike_map.html')
<result>
import pandas as pd
import folium
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rcParams['axes.unicode_minus'] = False
# 데이터 불러오기
file_path = './camping_loc.csv'
data = pd.read_csv(file_path, encoding='cp949')
# 지역명 통일 함수 정의
def normalize_province(address):
if isinstance(address, str):
# 제주도 처리
if '제주시' in address or '제주특별자치도' in address or '제주도' in address:
return '제주도'
# 강원도 처리
elif '강원' in address and '강원도' not in address:
return '강원도'
# 울산, 부산, 대구, 인천 등 광역시 처리
elif '울산' in address and '울산광역시' not in address:
return '울산광역시'
elif '부산' in address and '부산광역시' not in address:
return '부산광역시'
elif '대구' in address and '대구광역시' not in address:
return '대구광역시'
elif '인천' in address and '인천광역시' not in address:
return '인천광역시'
# 경기도와 경기 처리
elif '경기' in address and '경기도' not in address:
return '경기도'
# 서울특별시 처리
elif '서울' in address and '서울특별시' not in address:
return '서울특별시'
# 경상남도, 충청남도, 전라남도, 경상북도, 충청북도 처리
elif '경남' in address and '경상남도' not in address:
return '경상남도'
elif '충남' in address and '충청남도' not in address:
return '충청남도'
elif '전남' in address and '전라남도' not in address:
return '전라남도'
elif '경북' in address and '경상북도' not in address:
return '경상북도'
elif '충북' in address and '충청북도' not in address:
return '충청북도'
# 전북, 대전, 광주, 서울 처리
elif '전북' in address and '전라북도' not in address:
return '전라북도'
elif '대전' in address and '대전광역시' not in address:
return '대전광역시'
elif '광주' in address and '광주광역시' not in address:
return '광주광역시'
# 시군구 및 읍면동 처리
elif '김천시' in address:
return '경상북도'
elif '청도군' in address:
return '경상북도'
elif '연천군' in address:
return '경기도'
elif '음성군' in address:
return '충청북도'
elif '파주시' in address:
return '경기도'
elif '가평군' in address:
return '경기도'
elif '상서면' in address:
return '경상북도'
elif '강화군' in address:
return '인천광역시'
elif '청송군' in address:
return '경상북도'
elif '충주시' in address:
return '충청북도'
elif '영주시' in address:
return '경상북도'
elif '공주시' in address:
return '충청남도'
elif '대청로424번길' in address:
return '충청남도'
elif '포항시' in address:
return '경상북도'
elif '군위군' in address:
return '경상북도'
elif '각북면' in address:
return '경상북도'
elif '화천군' in address:
return '강원도'
elif '포천시' in address:
return '경기도'
# 그 외 도 처리
else:
return address.split()[0] # 주소에서 첫 번째 단어 반환
return None
data['도'] = data['주소'].apply(normalize_province)
region_counts = data['도'].value_counts()
plt.figure(figsize=(10, 6))
region_counts.plot(kind='bar', color='skyblue')
plt.title('Number of Camping Sites by Province')
plt.xlabel('Province')
plt.ylabel('Number of Camping Sites')
plt.xticks(rotation=45)
plt.tight_layout()
# 그래프 표시
plt.show()
camp_map = folium.Map(location=[37.5665, 126.978], zoom_start=8)
# 캠핑장 마커 추가
for idx, row in data.iterrows():
folium.Marker(
location=[row['위도'], row['경도']],
popup=row['캠핑(야영)장명']
).add_to(camp_map)
# 지도 저장
camp_map.save("camping_sites_map.html")
camp_map # 지도 표시
<result>
'Analysis' 카테고리의 다른 글
[데이터마이닝]seaborn -titanic,taxis,mpg,penguins,flights,tips (0) | 2024.12.05 |
---|---|
[데이터마이닝] Lab8-Plotly (1) | 2024.12.05 |
[데이터마이닝] Lab7-aggregation group by (0) | 2024.12.05 |
[데이터마이닝] worldcloud lab6 (0) | 2024.12.05 |
[데이터마이닝] pandas-taxis 5lab (0) | 2024.12.05 |