코딩 강좌35 PandasAI와 Streamlit으로 만드는 데이터 분석 챗봇 이번 글에서는 Streamlit과 PandasAI를 활용해서 CSV 파일을 분석할 수 있는 챗봇을 만드는 방법을 소개하려고 합니다.pandasai는 데이터 분석을 위한 오픈소스 AI 도구입니다. 주요 특징은 다음과 같습니다:일반 언어로 데이터에 대한 질문을 하면 실시간 인사이트를 제공복잡한 코딩 없이도 데이터 분석 가능SQL, NoSQL, CSV, xls 등 다양한 데이터 소스 연결 지원여러 데이터 소스를 통합 분석 가능1. 개요이 프로젝트는 여러 개의 CSV 파일을 업로드하고, 자연어로 데이터에 대해 질문하면 답변을 제공하는 웹 애플리케이션입니다. 2. 필요한 라이브러리 설치pip install pandas pandasai streamlit openai3. 코드 설명먼저 필요한 라이브러리들을 임포트합니.. 2024. 11. 8. Leaflet과 Turf.js를 활용한 다각형 버퍼 및 등간격 포인트 생성하기 이 코드는 지도상에 다각형을 그리고, 버퍼 영역을 생성한 후 그 경계선을 따라 일정한 간격으로 포인트를 배치하는 방법을 보여줍니다.1. 기본 지도 설정var map = L.map("map").setView([-26, 128], 5);L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {...});호주 중심부(-26°, 128°)를 초기 뷰포인트로 설정Carto의 밝은 스타일 베이스맵 사용2. 다각형 생성const polygon = turf.polygon([...]);호주 내륙 일부를 포함하는 사각형 다각형 생성좌표: 위도 -28° ~ -20°, 경도 126° ~ 140°3. 버퍼 생성const polygon1 = turf... 2024. 11. 7. Leaflet과 Turf.js를 활용한 폴리곤 차집합 구현하기 오늘은 Leaflet 지도 라이브러리와 Turf.js를 사용하여 폴리곤 간의 차집합(Difference)을 구현하는 방법을 알아보겠습니다.1. 기본 지도 설정먼저 호주 중심부를 보여주는 지도를 초기화합니다:var map = L.map("map").setView([-26, 128], 5);L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', { attribution: '© Carto Maps contributors'}).addTo(map);여기서 지도의 중심점을 남위 26도, 동경 128도로 설정하고 줌 레벨은 5로 지정했습니다. 베이스맵으로는 Carto의 라이트 스타일을 사용했습니다.2. 폴리곤 정의세 개의 폴리곤을 정.. 2024. 11. 6. 지도 위에 경로를 그리고 회전시키는 웹 앱 만들기 이번 포스팅에서는 지도 위에 경로를 그리는 간단한 웹 애플리케이션을 만들어보겠습니다. 이 프로젝트에서는 지도를 설정하고, 경로를 그리고, 슬라이더를 통해 경로를 회전시키는 기능을 구현할 것입니다. 자, 시작해볼까요? 1. 지도 설정하기 먼저, 지도를 화면에 띄우는 방법을 알아보겠습니다. 우리는 Leaflet이라는 라이브러리를 사용할 것입니다. 아래 코드는 지도를 생성하고, 초기 위치를 설정합니다. var map = L.map("map").setView([37.393667, 126.95737], 15);여기서 [37.393667, 126.95737]는 서울 근처의 특정 좌표입니다. 숫자 15는 확대 수준을 나타냅니다. 숫자가 클수록 더 자세히 볼 수 있습니다. 2. 지도 배경 설정 다음으로, 지도의 배경을.. 2024. 11. 5. 다각형 외부의 점에서 가장 가까운 점 다각형 내 위치 찾기 turf.js와 leaflet을 이용해 지도상의 특정 위치에서 가장 가까운 다각형 위의 점을 찾는 코드입니다. 마지막에 첨부된 내용을 파일로 저장해 브라우저로 열어보시면 아래와 같은 실행결과를 확인할 수 있습니다.코드의 전체적인 흐름은 아래와 같습니다.// 지도 초기화:// 호주 중심부 근처(-26°, 128°)에 지도를 생성하고 줌 레벨을 5로 설정합니다.var map = L.map("map").setView([-26, 128], 5);// 타일 레이어 추가:// Carto의 밝은 스타일 지도 타일을 배경으로 추가합니다.L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png'...)// 다각형 생성:// 호주 내부에 직사각형 모.. 2024. 11. 4. #3-2 OrTools로 bin packing 문제 해결(CP-SAT) 이전 글에 이어서 제약조건을 설정하고 최적화를 실행하는 부분을 설명하겠습니다. # 제약조건 for i in range(n): model.Add(xb1[i] == x[i] + b[i]*W) model.Add(xb2[i] == xb1[i] + w[i]) model.AddNoOverlap2D(xival,yival) model.AddMaxEquality(z,[b[i] for i in range(n)]) # 목적함수 model.Minimize(z) # 모델 최적화 solver = cp_model.CpSolver() # 로그 남기기 solver.parameters.log_search_progress = True # search worker 개수 지정 - 멀티스레드 #solver.parameters.num_searc.. 2022. 11. 22. 이전 1 2 3 4 5 6 다음