반응형

안녕하세요, 츄르 사려고 코딩하는 집사, 코집사입니다.


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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기