[Python] psycopg2에서 ALTER TABLE 실행하는 올바른 방법
·
개발 (Development)/Python
데이터베이스 작업 중 테이블 구조를 변경해야 할 때, ALTER TABLE 명령을 사용하게 됩니다. 하지만 pandas.read_sql_query()로 이 명령을 실행하려고 하면 오류가 발생합니다. 이번 글에서는 그 이유와 함께, psycopg2를 사용해 ALTER TABLE을 올바르게 실행하는 방법을 정리했습니다.1. 왜 pd.read_sql_query()로는 ALTER TABLE이 안 될까?pandas.read_sql_query()는 SELECT 결과를 DataFrame으로 읽어오는 용도로 만들어졌습니다.즉, 쿼리 실행 후 결과 집합을 반환해야 하는데, ALTER TABLE은 반환값이 없습니다.따라서 아래와 같은 에러가 발생합니다.pandas.io.sql.DatabaseError: Execution ..
[Python] Dictionary Comprehension: 숫자 형태의 값만 필터링하는 방법
·
개발 (Development)/Python
파이썬에서 리스트 안에 있는 딕셔너리 데이터를 처리할 때, 특정 조건(예: 값의 타입)을 만족하는 요소만 새로운 딕셔너리에 담고 싶을 때가 있습니다. 특히, 문자열 형태로 저장된 값 중 실수나 정수 형태인 값만 선별해야 할 때 유용하게 사용할 수 있는 딕셔너리 컴프리헨션(Dictionary Comprehension) 기법을 소개합니다.문제 상황: 문자열 속 숫자만 골라내기원본 목표는 다음과 같은 리스트에서 param["value"]가 '20' 또는 '3.14'처럼 숫자 형태로 변환 가능한 경우에만 딕셔너리에 포함시키는 것입니다.원본 데이터 구조:parameters = [ {"id": 1, "value": "20"}, {"id": 2, "value": "abc"}, {"id": 3, "va..
[Python] 데이터프레임에서 열 선택하기: `df.iloc[:, idxs]`의 의미
·
개발 (Development)/Python
이 코드는 df.iloc[:, idxs]의 간결한 표현입니다.이는 Pandas DataFrame에서 모든 행(row)을 선택하면서, 특정 열(column)을 정수 인덱스(순서)를 사용해 선택하는 방법입니다.: (콜론)은 '모든'을 의미하며, 첫 번째 위치에 있어 모든 행을 선택합니다.idxs는 선택하려는 열의 인덱스(순서)를 나타냅니다.예시아래와 같은 DataFrame df가 있다고 가정해 봅시다. A B C0 1 4 71 2 5 82 3 6 9첫 번째 열(A)만 가져오기:df.iloc[:, 0]결과:0 11 22 3Name: A, dtype: int64두 번째와 세 번째 열(B, C)만 가져오기:df.iloc[:, 1:3]결과: B C0 4 71 5 ..
[Python/PostgreSQL] 정규식을 활용해 SQL 쿼리 파라미터(컬럼명)를 자동으로 감싸기
·
개발 (Development)/Python
SQL 쿼리를 동적으로 생성할 때, 컬럼명이나 파라미터가 예약어(keyword) 와 충돌하거나 특수문자가 포함되어 오류가 발생하는 경우가 종종 있습니다. 이럴 때, 컬럼명을 쌍따옴표(" ") 로 감싸주는 것이 좋은 해결책이 될 수 있습니다.이번 글에서는 Python의 re (정규식) 모듈을 사용하여 쿼리 문자열에서 예약어가 아닌 단어(컬럼명)를 찾아 자동으로 쌍따옴표를 추가하는 방법을 알아보겠습니다.문제 상황"test_parameter > 0 and TEST_PARAMETER22 와 같은 쿼리 문자열이 있다고 가정해 봅시다. 이 쿼리를 파싱(parsing) 해서 test_parameter, TEST_PARAMETER22, value와 같은 컬럼명만 골라내고, 이들을 "test_parameter", "TE..
[Python] `__pycache__`란 무엇인가?
·
개발 (Development)/Python
__pycache__는 도대체 무엇이며, Git에 올려도 될까?Python 프로젝트를 진행하다 보면 __pycache__라는 낯선 폴더를 발견하게 됩니다. 이 폴더는 왜 생기는지, 그리고 Git을 이용해 협업할 때 이 파일을 어떻게 처리해야 할지 궁금해하는 분들이 많습니다. 이번 글에서는 __pycache__의 정체와 올바른 관리 방법에 대해 알아보겠습니다.__pycache__의 정체는? (feat. 바이트 코드)__pycache__는 Python이 프로그램의 속도를 향상시키기 위해 사용하는 캐시 폴더입니다. Python은 소스 코드(.py)를 실행하기 전, 바이트 코드(.pyc)라는 중간 단계의 코드로 변환합니다. 이렇게 변환된 .pyc 파일은 __pycache__ 디렉터리에 저장됩니다.다음 번에 같은..