반응형
1. 빅데이터 분석 프로젝트 데이터 시각화 2일 차
> 하드 코딩을 한 탓에 코드량이 점점 늘어나고 있다.
> 어느 정도 진행하고, 나중에 코드를 줄이던가 해야지.
2. BigZAMi를 이용한 공공 빅데이터 분석
> 파이썬으로 먼저 코드를 할 줄 알고 툴을 이용해서 하는게 더 도움이 되지 않을까 생각한다.
> 거의 툴키디가 되는 느낌.
빅데이터 분석 프로젝트 데이터 시각화 2일 차
#라이브러리 불러오기
import pandas as pd
import folium # 지도 불러오기 위한 라이브러리
import matplotlib.pyplot as plt
#plot 한글 깨짐
plt.rc('font', family='Malgun Gothic')
#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")
#완주주차장 컬럼변수 확인
parking_lot_wanju.columns
#완주주차장 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)) :
m = folium.Map([parking_lot_lat.iloc[i], parking_lot_lon.iloc[i]],
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(m)
#주차장 마커
folium.Marker(location=[parking_lot_lat.iloc[i], parking_lot_lon.iloc[i]],
icon = folium.Icon(color='red')).add_to(m)
for i in localspot.index :
#로컬푸드 써클
folium.CircleMarker(location=[localspot['위도'][i], localspot['경도'][i]],
radius = 5,
color = "#0000FF",
fil_color = "#ffffff",
popup = "local").add_to(m)
#로컬푸드 마커
folium.Marker(location=[localspot['위도'][i], localspot['경도'][i]],
icon = folium.Icon(color='blue')).add_to(m)
m
#덕진구, 완산구, 완주군 유입/유출 원형그래프 시각화
#각 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")
덕진구_주중_유입 = list(덕진구_주중['전주 덕진구 유입'])
덕진구_주중_유출 = list(덕진구_주중['전주 덕진구 유출'])
덕진구_주중_지역 = list(덕진구_주중['지역'])
덕진구_주말_유입 = list(덕진구_주말['전주 덕진구 유입'])
덕진구_주말_유출 = list(덕진구_주말['전주 덕진구 유출'])
덕진구_주말_지역 = list(덕진구_주말['지역'])
완산구_주중_유입 = list(완산구_주중['전주 완산구 유입'])
완산구_주중_유출 = list(완산구_주중['전주 완산구 유출'])
완산구_주중_지역 = list(완산구_주중['지역'])
완산구_주말_유입 = list(완산구_주말['전주 완산구 유입'])
완산구_주말_유출 = list(완산구_주말['전주 완산구 유출'])
완산구_주말_지역 = list(완산구_주말['지역'])
완주군_주중_유입 = list(완주군_주중['완주군 유입'])
완주군_주중_유출 = list(완주군_주중['완주군 유출'])
완주군_주중_지역 = list(완주군_주중['지역'])
완주군_주말_유입 = list(완주군_주말['완주군 유입'])
완주군_주말_유출 = list(완주군_주말['완주군 유출'])
완주군_주말_지역 = list(완주군_주말['지역'])
#덕진구 주중 유입 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기ㅅ4
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(덕진구_주중_유입, labels=덕진구_주중_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('덕진구 주중 유입 현황')
plt.show()
##덕진구 주중 유출 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(덕진구_주중_유출, labels=덕진구_주중_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('덕진구 주중 유출 현황')
plt.show()
#덕진구 주말 유입 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기ㅅ4
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(덕진구_주말_유입, labels=덕진구_주말_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('덕진구 주말 유입 현황')
plt.show()
##덕진구 주말 유출 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(덕진구_주말_유출, labels=덕진구_주말_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('덕진구 주말 유출 현황')
plt.show()
#완산구 주중 유입 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기ㅅ4
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완산구_주중_유입, labels=완산구_주중_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('덕진구 주말 유입 현황')
plt.show()
##완산구 주중 유출 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완산구_주중_유출, labels=완산구_주중_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완산구 주중 유출 현황')
plt.show()
#완산구 주말 유입 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기ㅅ4
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완산구_주말_유입, labels=완산구_주말_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완산구 주말 유입 현황')
plt.show()
##완산구 주말 유출 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완산구_주말_유출, labels=완산구_주말_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완산구 주말 유출 현황')
plt.show()
#완주군 주중 유입 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기ㅅ4
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완주군_주중_유입, labels=완주군_주중_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완주군 주말 유입 현황')
plt.show()
##완주군 주중 유출 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완주군_주중_유출, labels=완주군_주중_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완주군 주중 유출 현황')
plt.show()
#완주군 주말 유입 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기ㅅ4
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완주군_주말_유입, labels=완주군_주말_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완주군 주말 유입 현황')
plt.show()
##완주군 주말 유출 원형그래프
plt.rcParams["font.size"] = 12 #원형그래프 글자 크기
plt.figure(figsize=(15, 15)) #원형그래프 크기
plt.pie(완주군_주말_유출, labels=완주군_주말_지역, autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('완주군 주말 유출 현황')
plt.show()
#덕진구 유입(주중)
덕진구_주중_유입_버블 = px.scatter(data_frame=덕진구_주중,x='전주 덕진구 유입순위', y='전주 덕진구 유입', color='지역'
,hover_name='지역', size='전주 덕진구 유입',size_max=100)
#덕진구 유출(주중)
덕진구_주중_유출_버블 = px.scatter(data_frame=덕진구_주중,x='전주 덕진구 유출순위', y='전주 덕진구 유출', color='지역'
,hover_name='지역', size='전주 덕진구 유출',size_max=100)
#덕진구 유입(주말)
덕진구_주말_유입_버블=px.scatter(data_frame=덕진구_주말,x='전주 덕진구 유입순위', y='전주 덕진구 유입', color='지역'
,hover_name='지역', size='전주 덕진구 유입',size_max=100)
#덕진구 유출(주말)
덕진구_주말_유출_버블=px.scatter(data_frame=덕진구_주말,x='전주 덕진구 유출순위', y='전주 덕진구 유출', color='지역'
,hover_name='지역', size='전주 덕진구 유출',size_max=100)
덕진구_주중_유입_버블.show() #덕진구 유입(주중)
덕진구_주중_유출_버블.show() #덕진구 유출(주중)
덕진구_주말_유입_버블.show() #덕진구 유입(주말)
덕진구_주말_유출_버블.show() #덕진구 유출(주말)
#완산구 유입(주중)
완산구_주중_유입_버블 = px.scatter(data_frame=완산구_주중,x='유입순위', y='전주 완산구 유입', color='지역'
,hover_name='지역', size='전주 완산구 유입',size_max=100)
#완산구 유출(주중)
완산구_주중_유출_버블 = px.scatter(data_frame=완산구_주중,x='유출순위', y='전주 완산구 유출', color='지역'
,hover_name='지역', size='전주 완산구 유출',size_max=100)
#완산구 유입(주말)
완산구_주말_유입_버블 = px.scatter(data_frame=완산구_주말,x='유입순위', y='전주 완산구 유입', color='지역'
,hover_name='지역', size='전주 완산구 유입',size_max=100)
#완산구 유출(주말)
완산구_주말_유출_버블 = px.scatter(data_frame=완산구_주말,x='유출순위', y='전주 완산구 유출', color='지역'
,hover_name='지역', size='전주 완산구 유출',size_max=100)
완산구_주중_유입_버블.show() #완산구 유입(주중)
완산구_주중_유출_버블.show() #완산구 유출(주중)
완산구_주말_유입_버블.show() #완산구 유입(주말)
완산구_주말_유출_버블.show() #완산구 유출(주말)
#완주군 유입(주중)
완주군_주중_유입_버블 = px.scatter(data_frame=완주군_주중,x='완주군 유입순위', y='완주군 유입', color='지역'
,hover_name='지역', size='완주군 유입',size_max=100)
#완주군 유출(주중)
완주군_주중_유출_버블 = px.scatter(data_frame=완주군_주중,x='완주군 유출순위', y='완주군 유출', color='지역'
,hover_name='지역', size='완주군 유출',size_max=100)
#완주군 유입(주말)
완주군_주말_유입_버블 = px.scatter(data_frame=완주군_주말,x='완주군 유입순위', y='완주군 유입', color='지역'
,hover_name='지역', size='완주군 유입',size_max=100)
#완주군 유출(주말)
완주군_주말_유출_버블 = px.scatter(data_frame=완주군_주말,x='완주군 유출순위', y='완주군 유출', color='지역'
,hover_name='지역', size='완주군 유출',size_max=100)
완주군_주중_유입_버블.show() #완주군 유입(주중)
완주군_주중_유출_버블.show() #완주군 유출(주중)
완주군_주말_유입_버블.show() #완주군 유입(주말)
완주군_주말_유출_버블.show() #완주군 유출(주말)
plt.bar(range(10), 덕진구_주중_유입)
plt.bar([i for i in range(10)], 덕진구_주중_유출, bottom=덕진구_주중_유입)
ax = plt.subplot()
plt.title('전주시 덕진구 주중 유입유출', fontsize=15)
plt.ylabel('유입유출수', fontsize=10)
ax.set_xticks(range(10))
ax.set_xticklabels(덕진구_주중_지역, fontsize=10, rotation= 45)
plt.bar(range(10), 덕진구_주말_유입)
plt.bar([i for i in range(10)], 덕진구_주말_유출, bottom=덕진구_주말_유입)
ax = plt.subplot()
plt.title('전주시 덕진구 주말 유입유출', fontsize=15)
plt.ylabel('유입유출수', fontsize=10)
ax.set_xticks(range(10))
ax.set_xticklabels(덕진구_주말_지역, fontsize=10, rotation= 45)
plt.bar(range(10), 완산구_주중_유입)
plt.bar([i for i in range(10)], 완산구_주중_유출, bottom=완산구_주중_유입)
ax = plt.subplot()
plt.title('전주시 완산구 주중 유입유출', fontsize=15)
plt.ylabel('유입유출수', fontsize=10)
ax.set_xticks(range(10))
ax.set_xticklabels(완산구_주중_지역, fontsize=10, rotation= 45)
plt.bar(range(10), 완산구_주말_유입)
plt.bar([i for i in range(10)], 완산구_주말_유출, bottom=완산구_주말_유입)
ax = plt.subplot()
plt.title('전주시 완산구 주말 유입유출', fontsize=15)
plt.ylabel('유입유출수', fontsize=10)
ax.set_xticks(range(10))
ax.set_xticklabels(완산구_주말_지역, fontsize=10, rotation= 45)
plt.bar(range(10), 완주군_주중_유입)
plt.bar([i for i in range(10)], 완주군_주중_유출, bottom=완주군_주중_유입)
ax = plt.subplot()
plt.title('완주군 주중 유입유출', fontsize=15)
plt.ylabel('유입유출수', fontsize=10)
ax.set_xticks(range(10))
ax.set_xticklabels(완주군_주중_지역, fontsize=10, rotation= 45)
plt.bar(range(10), 완주군_주말_유입)
plt.bar([i for i in range(10)], 완주군_주말_유출, bottom=완주군_주말_유입)
ax = plt.subplot()
plt.title('완주군 주말 유입유출', fontsize=15)
plt.ylabel('유입유출수', fontsize=10)
ax.set_xticks(range(10))
ax.set_xticklabels(완주군_주말_지역, fontsize=10, rotation= 45)
반응형
'자기개발 > TIL' 카테고리의 다른 글
TIL(Today I Learned) 20200919 ~ 20200921 (0) | 2020.09.21 |
---|---|
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) 20200914 (0) | 2020.09.14 |
TIL(Today I Learned) 20200912 - 20200913 (0) | 2020.09.14 |
TIL(Today I Learned) 20200911 (0) | 2020.09.11 |
TIL(Today I Learned) 20200910 (0) | 2020.09.10 |
최근댓글