[Pandas] loc, iloc, at, iat 메소드 비교 pandas dataframe에서 임의의 위치 데이터를 추출하거나 변경하는 경우에 loc, iloc, at, iat을 사용할 수 있다. loc iloc at iat 위치 지정 X O X O 라벨명 지정 O X O X 여러개의 요소 지정 O O X X 슬라이스 표기 O O X X 샘플 데이터 프레임을 먼저 생성해준다. 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..
[Python] TypeError: 'str' object does not support item assignment 데이터 프레임 데이터의 특정 위치값을 변경 해야했다. 데이터 값은 문자열이였는데, 문자열의 인덱스 값을 아래와 같이 바로 수정하려고했을때 다음 에러가 발생했다. 문자열은 리스트처럼 인덱스 접근은 가능하지만 수정은 불가능했다. 문자열에서 특정 위치의 아이템을 변경하고싶다면 replace를 사용해야했다. test = 'hello world' 다음과 같은 문자열을 정의하고 첫번째 위치의 h를 a로 변경하고싶다면 test.replace(test[0], 'a') 위와같이 replace를 사용해 변경해주면 된다. 참고 https://dduniverse.tistory.com/entry/python-T..
[Pandas] 컬럼 데이터 값 합치기 https://heywantodo.tistory.com/268 [Pandas] 컬럼 데이터 값 분리하기 (str.split, str.get) [Pandas] 컬럼 데이터 값 분리하기 (str.split, str.get) pandas에서 컬럼의 데이터 값을 분리해서 새로운 컬럼으로 추가하고 싶을때, str.split과 str.get을 사용하면 분리 후 컬럼 추가가 가능하다. 컬럼 값 heywantodo.tistory.com 앞선 포스팅에서 컬럼 데이터 값을 분리하여 새로운 컬럼을 생성했다. 그렇다면 나뉘어진 컬럼을 합치는 방법은 없을까하여 찾아보니 분리하는 것 보다 더 간단했다. 아래와 같이 데이터 프레임이 있는 경우 다음과 같은 코드로 합칠 수 있다. date_df..
[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') 월 단위로도 생성..
[Airflow] Airflow Configuration Airflow를 사용하면서 튜닝이 가능한 여러 설정이 있는데, 그 설정들에 대해 정리 해보고자 한다. Airflow 레벨 airflow 환경을 조정하는 것이므로 모든 dag에 영향을 준다. core config 명 설명 parallelism 단일 Airflow 환경 내에서 동시에 실행 할 수 있는 최대 task 수 max_activate_tasks_per_dag DAG당 한 번에 스케줄링되는 최대 task 수를 결정 max_activate_runs_per_dag 1개의 DAG안에서 최대 활성화되는 DAG의 수를 제어 dag_file_processor_timeout DAG 파일을 처리하는 DagFileProcessor가 시간 초과되기 전에 실행할 수..
[Linux] Shell에서 date 다루기 리눅스 또는 유닉스 계열을 표시하기 위해선 다음과 같은 문법을 사용한다. 옵션 내용 -d 원하는 일자를 지정 + 출력 포맷 지정 포맷 설명 출력 +%a 요일 Mon +%A 요일 Monday +%Y 년 2018 +%b 월 Jan +%B 월 January +%d 일 04 +%m 달 05 +%D MM/DD/YY 형식 일자 출력 12/25/23 +%F YYYY-MM-DD 형식 일자 출력 2023-12-25 +%H 시간(24시) 16 +%I 시간(12시) 4 +%M 분 52 +%S 초 18 +%Z 타임존 KST 년월일 형태 date +"%Y-%m-%d" 2023-12-25 년월일 시간 date +"%Y-%m-%d %H:%M:%S" 2023-12-25 12:25:01 유..
[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 사용하..