[Pandas] 컬럼 데이터 값 분리하기 (str.split, str.get) pandas에서 컬럼의 데이터 값을 분리해서 새로운 컬럼으로 추가하고 싶을때, str.split과 str.get을 사용하면 분리 후 컬럼 추가가 가능하다. 컬럼 값 분리하기 테스트 하기 위한 임의 데이터 프레임을 생성해준다. import pandas as pd start_date = pd.to_datetime('2023-01-01') end_date = pd.to_datetime('2023-12-31') dates = pd.date_range(start_date, end_date, freq='M') df = pd.DataFrame({"date":dates}) df['date'] = pd.to_datetime(df['date']..
[Pandas] group by 했을 때 key외의 다른 컬럼 나오게하기 pandas로 데이터프레임을 group by 했을 때, key로 지정한 컬럼과 집계함수외 다른 컬럼이 데이터 프레임에 출력이 되어야하는데 어떤 방법을 써도 되지가 않았다. 그래서 열심히 서치를 하다가 발견한 방법은 agg를 사용하는 방법이다. 아래와 같이 임의의 데이터 프레임을 생성해주고 import names from random import * age = [randint(16, 19) for i in range(0, 101)] gender = [choice(["male", "female"]) for i in range(0, 101)] name = [names.get_first_name(gender=g) for g in gende..
[Pandas] 데이터 프레임 날짜 다루기 날짜 생성하기 pandas에서 제공하는 date_range를 사용하면 날짜를 생성 할 수 있다. date_range(start='시작 날짜', end='마지막 날짜', freq='단위', ... ) freq의 경우 일 단위로 생성할 것인지 월 단위로 생성할 것인지를 정해준다. (D: 일 단위/ M: 월 단위/Y: 연 단위) 예를 들어 2023년 1월 1일부터 2023년 12월 30일까지의 날짜를 생성해보자 start_date = pd.to_datetime('2023-01-01') end_date = pd.to_datetime('2023-12-31') dates = pd.date_range(start_date, end_date, freq='D') 월 단위로도 생성..
[Python] Yaml 파일 불러오기 SQLAlchemy에서 사용할 db 커넥션 pool을 생성하는데, DB 연결 정보와 같은 민감 정보를 yaml 파일에 저장해놓고 그걸 불러와서 사용했다. 먼저 다음과 같이 config.yaml 파일을 생성해준다. db_config: db_url: "mysql+pymysql://localhost:3306/fastapi_db?charset=utf8mb4" db_pool_recycle: 900 db_echo: True db_pool_size: 1 db_max_overflow: 1 db 커넥션 pool을 만들 파이썬 파일 하나를 생성한 후 yaml 파일을 사용하기 위해 파일 경로를 지정할 os 라이브러리와 yaml 라이브러리를 import 해준다. import os, ya..
[Python] SQLAlchemy SQLAlchemy란? 상업적으로 많이 사용되고있는 SQL 툴킷이며 Object Relational Mapper(ORM)이다. 클래스를 데이터베이스에 매핑할 수 있어서, 개체 모델과 데이터베이스 스키마를 완전히 분리된 방식으로 개발 할 수 있다. 🤔ORM (Object Relational Mapper) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. 각 테이블 또는 구분하고자 하는 데이터 단위로 객체를 구현하고, 데이터 간의 관계를 형성한다. 객체 지향적인 코드로 인해 더 직관적이고 비지니스 로직에 더 집중할 수 있게 도와준다. SQLAlchemy의 레이어 구조는 다음과 같다. 그렇다면 ORM을 사용하는 이유는 무엇일까? SQL 없이 OOP 언어..
[FastAPI] FastAPI 알아보기 FastAPI? 파이썬 3.6부터 제공되는 비교적 최근에 등장한 웹 프레임워크 기존에 잘 알려져있는 파이썬 웹 프레임워크로는 비교적 가벼운 웹 개발이라면 Flask를 사용했고, 조금 더 볼륨이 있는 프로젝트라면 Django를 사용했다. 이 가운데 비교적 조작법은 단순하면서 성능적으로 우세함을 보장한다는 FastAPI가 등장했다. FastAPI는 현대적이고 빠르며, 파이썬 표준 타입에(Type Annotation) 기초한 웹 프레임워크다. FastAPI의 특징은 다음과 같다. 자동 스웨거 (Swagger) 지원 ==> API 문서를 자동으로 생성 풍부한 자유도 내부에서 Starlette과 Pydantic을 사용 큰 커뮤니티, 아직은 작은 생태계 FastAPI 사용하..
[Python] 이차원 리스트 출력하기 이차원 리스트의 요소를 출력하기 위한 방법에 대해 알아보고자 한다. 이차원 리스트를 먼저 생성해준다. a = ['a','b','c','d'] b = ['1','2','3','4'] c = ['A','B','C','D'] lst = [a,b,c] lst 특정 값에 접근하기 위해서는 세로 인덱스와 가로 인덱스를 지정해주면 된다. 만약에 '2'를 출력하고 싶다면 아래와 같이 할 수 있다. lst[1][1] '2' 요소를 하나씩 가져오고 싶다면 반복문을 이용하여 가져올 수 있다. for a,b,c,d in lst: print(a,b,c,d)
[Pandas] 데이터프레임 순회하기 특정 조건에 맞는 데이터 프레임 값을 출력해야하는 경우가 있다. 데이터프레임 순회를 하여 데이터프레임을 모두 출력하는 방법에 대해서 알아보자 먼저 샘플 데이터 프레임을 생성해준다. import pandas as pd import names from random import * age = [randint(16, 19) for i in range(0, 5)] gender = [choice(["male", "female"]) for i in range(0, 5)] name = [names.get_first_name(gender=g) for g in gender] grade = [choice(['A','B','C','D']) for i in range(0, 5)] math ..
[Pandas] Query Pandas에서 조건에 부합하는 데이터를 추출할 때, 가장 많이 사용하는 게 Query함수라고 한다. 가독성과 편의성은 좋지만, .loc[]로 구현한 것 보다 속도가 느리다. query 함수를 사용하기 위해서 랜덤 데이터프레임을 생성해준다. import pandas as pd import names from random import * age = [randint(16, 19) for i in range(0, 101)] gender = [choice(["male", "female"]) for i in range(0, 101)] name = [names.get_first_name(gender=g) for g in gender] cl = [choice(['A','B','C','D']..
[Python] 파이썬에서 다른 py 파일의 변수/함수 호출 변수/함수가 다른 파이썬 파일에 정의되어있을 때, 가져와서 사용하는 방법에 대해 알아보자 라이브러리와 같이 import 혹은 from ~ import 문을 사용해서 가져올 수 있다. 먼저 파이썬 프로젝트 폴더 내의 test라는 폴더가 있고 그안에 test.py란 파일을 생성해준다. test.py 의 내용은 다음과 같다. name = "one" def test(name): return print(f"my name is {name}") 같은 폴더 내의 파일 import import 파일명 test 폴더에 test2.py 파일을 생성해서 다음과 같이 import 해준다. import test name = test.name test.test(name)..
[Python] plotly 사용하기 (1) Line 그래프 앞선 포스팅에서 Plotly를 설치하는 방법에 대해서 알아보았다. [Python] Plotly 설치 [Python] Plotly 설치 파이썬의 fullstack 웹 프레임워크인 reflex (https://reflex.dev/) 로 간단한 웹 프로젝트를 하게 되었다. 홈페이지의 갤러리에 가보면 reflex로 구현한 샘플 웹페이지들을 확인 할 수 있다 heywantodo.tistory.com Plotly 라이브러리를 이용해서 그래프를 그려보자 데이터는 plotly에서 제공하는 임의의 데이터를 사용 한다. import pandas as pd import plotly.express as px import plotly.graph_objects as g..