반응형

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


1. 빅데이터 분석 프로젝트 데이터 시각화 시작

2. QGIS와 BigZAMi를 이용한 전기차 현황 데이터 분석

> BigZAMi는 사용하기엔 쉽지만, QA를 좀 부족하게 했는지 각 종 오류가 많이 생기고, 600명 정도가 접속하면 서버가 불안정하다.

> QGIS는 실습을 했는데도 이해가 잘 되지 않는다. 그래도 경험했기 때문에 처음 접한 것보다 더 능숙하게 할 수 있다.


빅데이터 분석 프로젝트 데이터 시각화 시작


#라이브러리 불러오기
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()


 

반응형

'자기개발 > TIL' 카테고리의 다른 글

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
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
TIL(Today I Learned) 20200909  (0) 2020.09.09
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기