본문 바로가기

Python83

[Python] 판다스 (Pandas) 라이브러리 사용하여 데이터의 합계, 최대값, 평균, 비율 계산하기 안녕하세요 오늘은 파이썬에서 제공하는 데이터 분석 라이브러리인 판다스(Pandas) 를 사용하여 합계, 최대값, 평균, 비율을 계산해보겠습니다.    위 예시 데이터를 활용할 예정입니다. 총 판매량과 평균 판매량, 최대 판매량과 지역별 판매 비율을 확인해보겠습니다  import pandas as pd# CSV 파일 불러오기df = pd.read_csv('complex_sales_data.csv')# 날짜를 datetime 형식으로 변환df['날짜'] = pd.to_datetime(df['날짜'])# 월별로 데이터 그룹화monthly_grouped = df.groupby(df['날짜'].dt.to_period('M')).agg( 총판매량=('판매량', 'sum'), 평균판매량=('판매량', 'm.. 2024. 11. 1.
[Python] 사이킷런(scikit-learn) 라이브러리를 활용하여 정규화 하기 Min-Max Scaling 사이킷런(scikit-learn) 이란 파이썬에서 제공하는 머신러닝 분석 라이브러리입니다 사이킷런에서는 머신러닝에 필요한 다양한 도구들을 모듈로 구분하여 제공합니다 오늘은 전처리 (preprocessiong) 모듈에서 제공하는 Min-Max Scaling 메소드를 사용해정규화를 진행해보도록 하겠습니다 정규화란 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업으로 모든 값을 0과 1 사이로 조정하여 다양한 변수들간의 비교가 용이하도록 합니다  활용하고자 하는 데이터셋에서 변수들이 서로 다른 단위나 값 범위를 가질경우, 특히 한 변수의 값이 다른 변수들보다 훨씬 클때 정규화가 필요합니다. 예를 들어, 거리(m), 시간(시,분,초), 온도(°C) 등, 여러 단위의 변수를 한꺼번에 사용할때 단위 차이가 .. 2024. 10. 26.
[Python] 판다스 (Pandas) 라이브러리 사용해서 csv 데이터 특정 칼럼에 문자열 추가하기 오늘은 자바스크립트를 이용해 csv 파일의 대량 데이터를 일괄적으로 편집하는 기능을사용해보려고합니다 Pandas 는 파이썬에서 제공하는 분석 라이브러리로, 데이터 분석에 있어서 다양한 기능을 제공합니다    먼저 오늘 사용할 데이터는 전국 치안센터의 위치 데이터입니다. 자료 확장자명은 csv 이고 데이터는 공공데이터 포털에서 다운 받으실 수 있습니다. https://www.data.go.kr/data/15076962/fileData.do (시도청, 경찰서, 관서명, 지역파출소, 치안센터명, 주소)" data-og-host="www.data.go.kr" data-og-source-url="https://www.data.go.kr/data/15076962/fileData.do" data-og-url="htt.. 2024. 10. 20.
[Python] 카카오 API 사용해서 도로명 주소를 위도, 경도 좌표로 반환하기 (Geocoding) 안녕하세요 오늘은 도로명 주소를 위도, 경도 좌표로 변환해보도록 하겠습니다 고유 명칭(주소나 산, 호수의 이름 등) 을 가지고 위도와 경도의 좌표값을 얻는 것을 지오코딩(Geocoding) 이라고 합니다.  카카오, 구글 에서는 지오코딩 가능한 api 를 제공합니다. 하나의 주소에 대해서만 위도, 경도가 필요한 것이라면, 구글 검색으로도 충분합니다. 본 게시글에서는 카카오 지오코딩을 사용하여서 csv 파일에 저장된 대량의 도로명 주소들에 대한위도, 경도 좌표를 한번에 가져오도록 하겠습니다.   1. 카카오 키 발급하기먼저 카카오 개발자 홈페이지 (Kakao Developers) 에 들어갑니다. '내 애플리케이션 -> 애플리케이션 추가'  버튼을 눌러줍니다.  지오코딩이라는 이름으로 새로운 프로젝트를 생성.. 2024. 10. 14.
[Python] random 모듈의 다양한 기능 안녕하세요오늘은 파이썬에서 ramdom 모듈의 다양한 기능과 사용 예제에 대해서 알아보겠습니다. 예제는 파이참에서 진행했습니다.  우선 전체 코드입니다.from random import *# 기본 예제print("1. 기본 랜덤 함수")print(random()) # 0.0 ~ 1.0 미만 임의의 값 생성print(random() * 10) # 0.0 ~ 10.0 미만 임의의 값 생성print(random() + 1) # 1.0 ~ 2.0 미만 임의의 값 생성print(int(random() * 10)) # 0 ~ 10 미만 임의의 값 생성print(randrange(1, 46)) # 1 ~ 45 임의의 값 생성# 추가 함수들print("\n2. 추가 랜덤 함수")print(randint(1, .. 2024. 8. 25.
[Python] 다양한 문자열 연결(포매팅) 방법 안녕하세요. 오늘은 파이썬의 문자열 연결(포매팅)의 다양한 방법에 대해서 알아보겠습니다. beverage = "아메리카노"price = 1900print("우리 동네 카페의 " + beverage + " 가격은 " + str(price) + "원 입니다.") # 1. (+) 사용print("우리 동네 카페의", beverage, "가격은", price, "원 입니다.") # 2. 콤마(,) 사용print(f"우리 동네 카페의 {beverage} 가격은 {price}원 입니다.") # 3. f-string 사용print("우리 동네 카페의 {0} 가격은 {1}원 입니다.".format(beverage, price)) # 4. format() 메서드 사용print("우리 동네 카페의 %s 가격은 %d.. 2024. 8. 19.
[Python] Blueprint로 소스 코드 나누기 안녕하세요 오는 한페이지에 코드가 길어지는 것을 방지 하기 위해 Blueprint 로 소스를 나눠 볼려고 합니다. blue.py  생성from flask import Blueprintbp = Blueprint('blue', __name__)@bp.route("/blue")def print_blue(): return "hello Blue!" app.py 생성from flask import Flaskimport blueapp = Flask(__name__)app.register_blueprint(blue.bp)@app.route('/')def hello_world(): return 'Hello, World!'app.run()  결과  소스코드가 나눠진것을 확인할 수 있습니다. 2024. 7. 4.
[Python] flask 로깅하기 안녕하세요 오늘은 flask 로 로깅하는 방법을 알아보도록 하겠습니다. app.py 을 생성해줍니다.from flask import Flaskapp = Flask(__name__)if not app.debug: # 즉 debug=true면 이는 false로서 아래 함수가 돌아간다. # 실제 상용화단계에서 로깅을 진행해라는 의미이다 import logging from logging.handlers import RotatingFileHandler # logging 핸들러에서 사용할 핸들러를 불러온다. file_handler = RotatingFileHandler( 'dave_server.log', maxBytes=2000, backupCount=10) fil.. 2024. 6. 27.
[Python] flask 설치하기 안녕하세요 오늘은 flask 를 설치 해보도록 하겠습니다. 설치 & 획인# 터미널에서 설치pip3 install flask# 설치 확인python3 -m flask --version app.py 파일 생성# app.pyfrom flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'hello' 결과입니다. 2024. 6. 22.