전국대학교 리스트

sz L·2023년 3월 20일
0

MINII_Project

목록 보기
14/15
post-thumbnail

Pandas (Python Data Analysis Library)

pandas 설치
PyQtWebEngine 설치

pip install pandas
pip install PyQtWebEngine
  • 전국 대학교 엑셀파일
  • 전국 대학교 위치 엑셀파일
# PyQt에 folium 지도 표시
import folium
from PyQt5 import uic
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView # pip install PyQtWebEngine
import sys
import io # 파일 저장
import pandas as pd

class qtApp(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('전국대학교 위치')
        self.width, self.height = 1400, 900
        self.setMinimumSize(self.width, self.height)

        layout = QVBoxLayout()
        self.setLayout(layout)

        filePath = './StudyPython/university_locations.xlsx'
        df_excel = pd.read_excel(filePath, engine='openpyxl', header=None) # 헤더가 없음(데이터만 존재하기 때문에 헤더 없다고 해야함 아니면 첫번째 데이터를 헤더로 인식)
        df_excel.columns = ['학교명', '주소', 'lng', 'lat']

        # print(df_excel)
        name_list = df_excel['학교명'].to_list()
        add_list = df_excel['주소'].to_list()
        lng_list = df_excel['lng'].to_list()
        lat_list = df_excel['lat'].to_list()
        
        # url = 'https://www.naver.com'
        m = folium.Map(location=[37.553175, 126.989326], zoom_start=10)
        for i in range(len(name_list)): # 446번 반복
            if lng_list[i] != 0: # 위경도 값이 0이 아니라면
                marker = folium.Marker([lat_list[i], lng_list[i]], popup=name_list[i],
                                    icon=folium.Icon(color = 'blue'))
                marker.add_to(m)

        data = io.BytesIO()
        m.save(data, close_file=False)

        webView = QWebEngineView()
        # webView.load(QUrl(url))
        webView.setHtml(data.getvalue().decode())
        layout.addWidget(webView)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = qtApp() # MyApp(9일차 참고)
    ex.show()
    sys.exit(app.exec_())                

profile
가랑비는 맞는다 하지만 폭풍은 내 것이야

0개의 댓글