반응형
1. 데이터 분석 시작 4일차
2. 데이터 시각화 추가 및 선형회귀 그래프
3.
데이터 분석 프로젝트
#라이브러리 불러오기
# pip install pandas, folium, plotly
import pandas as pd
import folium # 지도 불러오기 위한 라이브러리
import matplotlib.pyplot as plt #pie 그래프 라이브러리
import plotly.express as px #버블차트 라이브러리
import seaborn as sns
import matplotlib.font_manager as fm
from matplotlib import font_manager, rc
#plot 한글 깨짐
plt.rc('font', family='Malgun Gothic')
#막대그래프 한글 깨짐
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
#csv 파일 불러오기
parking_lot_wanju = pd.read_csv("C:/Users/User/Desktop/project/완주주차장.csv", encoding="CP949")
parking_lot_jeonju = pd.read_csv("C:/Users/User/Desktop/project/전주주차장.csv", encoding="CP949")
localspot= pd.read_csv("C:/Users/User/Desktop/project/로컬푸드위치.csv", encoding="CP949")
#전주 위도 경도 [127.1479532, 35.8242238]
#완주주차장 shape 확인
parking_lot_wanju.shape
#전주주차장 컬럼변수 확인
parking_lot_jeonju.columns
#전주주차장 shape 확인
parking_lot_jeonju.shape
#로컬푸드 컬럼변수 확인
localspot.columns
# shape 확인
localspot.shape
#완주주차장 컬럼변수와 전주주차장 컬럼변수가 일치한지 확인
#데이터프레임을 합치기 위해서 사용
parking_lot_wanju.columns == parking_lot_jeonju.columns
#데이터프레임 합치기
parking_lot = pd.concat([parking_lot_wanju,parking_lot_jeonju])
parking_lot.shape #데이터 프레임 합쳐진 결과 확인
#필요없는 컬럼변수 삭제
parking_lot = parking_lot.drop(["소재지도로명주소","부제시행구분","운영요일","평일운영시작시각","평일운영종료시각","토요일운영시작시각","토요일운영종료시각","공휴일운영시작시각","공휴일운영종료시각"], axis=1)
localspot = localspot.drop(["번호","지역","시군구","사업장명","개장일"], axis=1)
#주차장 위도, 경도를 리스트에 저장
parking_lot_lat = [] #주차장 위도
parking_lot_lon = [] #주차장 경도
parking_lot_lat = pd.DataFrame(parking_lot['위도'])
parking_lot_lon = pd.DataFrame(parking_lot['경도'])
#loc를 사용하게 되면, concat을 하면서 no가 섞여 1~20까지 위도, 경도가 2개씩 나오므로, iloc를 통해 사용
#이건 나중에 지워도 됩니다.
#for i in range(len(parking_lot_lat)) :
# parking_lot_map = folium.Map([parking_lot_lat.iloc[i], parking_lot_lon.iloc[i]],
# tiles = "OpenStreetMap",
# zoom_start = 10)
#지도만들기
parking_lot_map = folium.Map([35.8242238, 127.1479532],
tiles = "OpenStreetMap",
zoom_start = 10)
#지도에 써클 및 마커 생성
for i in range(len(parking_lot_lat)) :
#주차장 써클
folium.CircleMarker(location=[parking_lot_lat.iloc[i], parking_lot_lon.iloc[i]],
radius = 5,
color = "#FF0000",
fil_color = "#ffffff",
popup = "parking").add_to(parking_lot_map)
#주차장 마커
folium.Marker(location=[parking_lot_lat.iloc[i], parking_lot_lon.iloc[i]],
icon = folium.Icon(color='red')).add_to(parking_lot_map)
#loc를 사용하게 되면, concat을 하면서 no가 섞여 1~20까지 위도, 경도가 2개씩 나오므로, iloc를 통해 사용
#이건 나중에 지워도 됩니다.
#for i in range(len(parking_lot_lat)) :
# parking_lot_map = folium.Map([parking_lot_lat.iloc[i], parking_lot_lon.iloc[i]],
# tiles = "OpenStreetMap",
# zoom_start = 10)
#지도만들기
local_map = folium.Map([35.8242238, 127.1479532],
tiles = "OpenStreetMap",
zoom_start = 10)
for i in localspot.index :
#로컬푸드 써클
folium.CircleMarker(location=[localspot['위도'][i], localspot['경도'][i]],
radius = 5,
color = "#0000FF",
fil_color = "#ffffff",
popup = "local").add_to(local_map)
#로컬푸드 마커
folium.Marker(location=[localspot['위도'][i], localspot['경도'][i]],
icon = folium.Icon(color='blue')).add_to(local_map)
#각 구별, 군별 주중, 주말 유입 유출 데이터
#각 csv 파일에 쉼표 제거
덕진구_주중=pd.read_csv('C:/Users/User/Desktop/project/덕진구주중.csv',encoding="CP949")
덕진구_주말=pd.read_csv('C:/Users/User/Desktop/project/덕진구주말.csv',encoding="CP949")
완산구_주중=pd.read_csv('C:/Users/User/Desktop/project/완산구주중.csv',encoding="CP949")
완산구_주말=pd.read_csv('C:/Users/User/Desktop/project/완산구주말.csv',encoding="CP949")
완주군_주중=pd.read_csv('C:/Users/User/Desktop/project/완주군주중.csv',encoding="CP949")
완주군_주말=pd.read_csv('C:/Users/User/Desktop/project/완주군주말.csv',encoding="CP949")
#덕진구_유입 = pd.DataFrame({'지역' : 덕진구_주중['지역'], '전주 덕진구 유입' : 덕진구_주중['전주 덕진구 유입'] + 덕진구_주말['전주 덕진구 유입']})
#완산구_유입 = pd.DataFrame({'지역' : 완산구_주중['지역'], '전주 완산구 유입' : 완산구_주중['전주 완산구 유입'] + 완산구_주말['전주 완산구 유입']})
#완주군_유입 = pd.DataFrame({'지역' : 완주군_주중['지역'], '완주군 유입' : 완주군_주중['완주군 유입'] + 완주군_주말['완주군 유입']})
#덕진구, 완산구, 완주군 년별 유입 데이터
덕진구_년별_유입 = pd.read_csv('C:/Users/User/Desktop/project/덕진구년별유입.csv',encoding="CP949")
완산구_년별_유입 = pd.read_csv('C:/Users/User/Desktop/project/완산구년별유입.csv',encoding="CP949")
완주군_년별_유입 = pd.read_csv('C:/Users/User/Desktop/project/완주군년별유입.csv',encoding="CP949")
#덕진구 년별 유입수 bargraph
sns.barplot(덕진구_년별_유입['년월'], 덕진구_년별_유입['덕진구유입'])
plt.title('전주 덕진구 년별 유입 그래프', size = 20)
plt.xlabel('년월', size=15)
plt.ylabel('덕진구유입수', size=15)
plt.xticks(rotation=60)
plt.show()
#완산구 년별 유입수 bargraph
sns.barplot(완산구_년별_유입['년월'], 완산구_년별_유입['완산구유입'])
plt.title('전주 완산구 년별 유입 그래프', size = 20)
plt.xlabel('년월', size=15)
plt.ylabel('완산구유입수', size=15)
plt.xticks(rotation=60)
plt.show()
#덕진구 년별 유입수 bargraph
sns.barplot(완주군_년별_유입['년월'], 완주군_년별_유입['완주군유입'])
plt.title('완주군 년별 유입 그래프', size = 20)
plt.xlabel('년월', size=15)
plt.ylabel('완주군유입수', size=15)
plt.xticks(rotation=60)
plt.show()
반응형
'자기개발 > TIL' 카테고리의 다른 글
TIL(Today I Learned) 20210115 (0) | 2021.01.15 |
---|---|
TIL(Today I Learned) 20210114 (0) | 2021.01.14 |
TIL(Today I Learned) 20210113 (0) | 2021.01.13 |
TIL(Today I Learned) 20200922 ~ 20200923 (0) | 2020.09.23 |
TIL(Today I Learned) 20200918 (0) | 2020.09.18 |
TIL(Today I Learned) 20200917 (0) | 2020.09.18 |
TIL(Today I Learned) 20200916 (0) | 2020.09.16 |
TIL(Today I Learned) 20200915 (0) | 2020.09.15 |
최근댓글