[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__ 디렉터리에 저장됩니다.다음 번에 같은..
[Python] RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe 에러 해결
·
개발 (Development)/Python
파이썬 개발을 하다 보면 라이브러리 간의 버전 충돌이나 호환성 문제로 예상치 못한 오류를 만날 때가 있습니다. 최근 저도 requirements.txt에 있는 라이브러리를 설치하고 코드를 실행했을 때, 아래와 같은 RuntimeError를 겪었습니다.발생했던 문제: RuntimeError: module compiled against API version 0xf but this version of numpy is 0xepip install numpy를 성공적으로 마친 후 main.py 파일을 실행하자마자 위와 같은 오류 메시지가 떴습니다.이 메시지는 '특정 모듈이 컴파일된 파이썬 API 버전(0xf)과 현재 설치된 NumPy 버전(0xe)의 API가 서로 다르다' 는 의미입니다. 쉽게 말해, 파이썬 인터프..
[Python] requests에서 대량 배열 전송 시 403 오류 해결
·
개발 (Development)/Python
문제 상황Python requests 라이브러리로 API에 PUT/POST 요청을 보낼 때, 배열 길이가 100개를 초과하면 403 Forbidden 오류가 발생했습니다.같은 API를 브라우저 UI나 Postman에서 호출하면 정상 동작했기 때문에, Python에서의 요청 형식에 문제가 있다고 판단했습니다.원인 분석requests 자체 제한 없음: 라이브러리 차원에서 배열 크기나 본문 길이를 제한하지는 않습니다.직렬화 방식 차이: json= 옵션은 기본적으로 ensure_ascii=True, 직렬화 시 공백 포함 → 바디가 불필요하게 길어짐.전송 형식 차이: Content-Length가 명확히 지정되지 않거나 청크드 전송이 되면, 보안 장비(WAF)가 차단할 수 있음.UI와 차이: 브라우저/포스트맨은 항..