Jost Do It.

그냥 IT해.

반응형

파이썬 10

[conda] base 환경은 다른 가상환경 패키지에 모두 영향을 미친다!

개요 어느날 개발서버에서 잘 작동하던 FastAPI에서 에러가 발생했다. 에러는 특정 라이브러리의 함수를 찾을 수 없다는 내용이다. Traceback (most recent call last): File "/home/mining/projects/finance_advisor/some_money/somemoney_api_server/scripts/../run.py", line 30, in from somemoney_api_server.security import user File "/home/mining/projects/finance_advisor/some_money/somemoney_api_server/somemoney_api_server/security/user.py", line 17, in from f..

[sqlalchemy] immutabledict is not a sequence 에러 해결

문제 상황 sqlalchemy 라이브러리를 통해서 엔진을 생성하고 SQL문을 실행했더니 다음 에러가 발생했다. [...] TypeError: sqlalchemy.cyextension.immutabledict.immutabledict is not a sequence 실행한 코드는 다음과 같다. from sqlalchemy import create_engine conn_str = "{DB_TYPE}://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}".format(**os.environ) engine = create_engine(conn_str, client_encoding='utf8') del_sql = "DELETE FROM test" where = ('%..

Programming/Python 2024.03.09

[Docker] 컨테이너 내 pip 패키지 설치 시 RuntimeError 문제

문제 상황 파이썬 컨테이너를 띄우고 내부에 패키지를 설치하던 중 아래 에러가 발생하였다. pip install -r requirements.txt [...] Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 165, in exc_logging_wrapper status = run_func(*args) File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 205, in wrapper return func(self, options, args) File "/usr/lib/pyt..

[Pandas] 정규식을 이용해서 특정 문자만 제거하기

문제상황 데이터 수집을 하는 중에 원본 데이터에서 잘못된 형식으로 값이 저장된 경우가 있었다. 원래 형식은 수치값이 string 형식으로 천단위 구분 기호로 절대값을 표시 (ex> 2,000)하거나 00.00%형식으로 돼 있어야 하는데, 잘못된 형식의 데이터에서는 00,00%로 온점이 아니라 반점으로 기재돼 있었다. 따라서 절대값이나 00.00%로 잘 기재된 경우에는 그대로 출력하고, 00,00%로 돼 있는 경우에만 ,를 .으로 바꿔줘야 했다. 해결 방법 판다스 데이터프레임의 str.replace를 이용해 다음과 같이 해결할 수 있다. df['column1'] = df['column1'].str.replace(r'^([0-9]{2}),([0-9]{2})%', r'\1.\2%', regex = True) ..

Programming/Python 2024.02.27

[Python] upsert문 간접 구현하기

문제 상황 관계형 데이터베이스에 테이블에는 중복 방지와 무결성을 위해 primary key를 설정한다. 이 때 primary key를 설정하면 primary key 값이 중복된 데이터들은 업로드할 수 없다. 보통 SQL문에서는 중복된 데이터인 경우 INSERT INTO ... ON CONFLICT ... 구문을 통해 데이터를 덮어쓸 수 있다. 하지만 pd.to_sql 함수의 경우 데이터 업로드 시 해당 기능이 구현돼 있지 않아 다음 코드를 작성했다. 해결 방법 함수의 동작방식을 다음과 같이 하여 upsert를 간접 구현하였다. 간단히 말하면 pk 중복 데이터를 제거하고 다시 insert하는 방식으로 완전한 upsert는 아닐 수 있다. 1. 시스템 테이블에서 해당 테이블의 primary_key 이름 찾기..

Programming/Python 2024.02.05

[Python] json 출력 포맷 설정하기

개요 API는 사용자 이해를 돕기 위해 일반적으로 docs문서를 제공한다. 특히 각 API마다 출력 결과 예시를 추가하면 사용자들에게 예상 결과, 에러 종류들을 안내하기 용이하다. 이 때 출력 결과 예시는 일반적으로 미리 출력해 저장한 json 데이터이다. 문제 상황 아래와 같이 출력 결과 예시 데이터는 미리 저장된 데이터로 원본 그대로이거나 원본을 간소화한 데이터다. { "api_name": "/api/v5/daily-stcok.json", "data": [ { "date": "2020-03-02", "A005930": 55000, "A035720": 35125, "...": "..." }, { "date": "2020-03-03", "A005930": 55400, "A035720": 35125, "...

Programming/Python 2023.12.19

프로그래머가 알아야 할 알고리즘 40 Chapter 6 비지도 학습 알고리즘

Chapter 06. 비지도 학습 알고리즘 요약 비지도 학습의 여러 알고리즘들을 학습하고 어떻게 활용되는지 알 수 있었다. 내용 정리 6-1. 비지도 학습 이해하기 비지도 학습 (Unsupervised learning) 데이터에 내재된 패턴을 발견하고 이를 구조화하는 프로세스 데이터가 무작위로 생성된 것이 아닌 이상, 다차원의 공간에서 데이터 요소 간에는 어떤 패턴이 존재한다. 비지도 학습은 숨겨진 패턴을 찾아내 데이터셋에 구조를 부여하는 과정이다. 지도 학습과 비지도 학습을 결합해 새로운 알고리즘을 개발하려는 연구자들이 늘고 있다 (semi-supervised learning). 비지도 학습의 장점 정답이 주어져 있지 않기 때문에 분석이 훨씬 유연해 가정(assumption)에 덜 의존적임 어떤 차원의..

Study/알고리즘 2022.11.23

프로그래머가 알아야 할 알고리즘 40 Chapter 5 그래프 알고리즘

5장. 그래프 알고리즘 요약 그래프의 종류들과 그래프를 사용한 알고리즘 방법론들을 알 수 있었다. 내용 정리 그래프 알고리즘(graph algorithm) 복잡하고 상호연결성이 높은 자료 구조에서 원하는 정보를 가장 빠르게 찾을 수 있는 방법 전통적으로 검색 분야에서 크게 쓰이고 있음 최근 빅데이터, 소셜미디어, 분산형 데이터 분석에도 사용되고 있음 5.1 그래프 표현 이해하기 그래프(Graph) 버텍스(vertex)와 엣지(edge)로 구성된 자료 구조 버텍스(vertex): 네트워크를 구성하는 개체로 하나의 노드로 볼 수 있다. 모든 버텍스는 버텍스 집합에 속한다 (v ∈ V). 엣지(edge): 두 버텍스가 관계가 있을 때, 이를 이어서 엣지로 표현함 모든 엣지는 엣지 집합에 속한다 (e ∈ E)...

Study/알고리즘 2022.11.16

프로그래머가 알아야 할 알고리즘 40 Chapter 4 알고리즘 설계

4장. 알고리즘 설계 요약 알고리즘을 설계할 때 중요한 포인트들과 여러 알고리즘 종류들을 알 수 있었다. 내용 정리 4.1 알고리즘 설계의 기본 개념 살펴보기 알고리즘 설계 "특정 목표"를 가장 효율적으로 달성할 수 있는 "명료한 요구사항으로 구성된 유한한 집합"을 고안하는 것 문제 이해: 풀려는 문제를 명확히 이해해야 한다. 요구 사항: 무엇을 완료해야 하는지를 파악해야 한다. 알고리즘 설계: 어떻게 완료할 것인지 고민해야 한다. 문제 이해 단계 문제의 기능적 요구 사항과 비기능적 요구 사항을 모두 파악해야 한다. 기능적 요구사항: 문제의 입출력 인터페이스, 이와 관련된 함수를 의미함. 기능적 요구사항을 통해 기대하는 결과를 얻기 위해 구현해야 할 데이터 처리, 가공 및 연산과정을 이해 비기능적 요구사..

Study/알고리즘 2022.11.14

[Python] functools의 partial 함수 알아보기

partial 함수는 functools package에서 제공하는 함수로, functools package는 유용한 여러가지 함수들을 제공하는 라이브러리다. 이 글에서는 functools 패키지의 partial 함수를 언제 사용하는지를 알아보고, 예제와 함수 동작 원리에 대해서 알아보려고 한다. partial 함수는 언제 사용하는가? 파이썬에서 함수(function)는 특정 변수(parameter)를 입력받아 어떤 작업을 수행한다. 보통 함수는 변하는 값을 입력받을 때 parameter로 정의하지만, 실제 함수를 사용할 때는 parameter 값을 고정해 사용할 때도 많다. 이 때 사용하는 것이 partial 함수이다. partial 함수 튜토리얼 예제를 통해서 partial 함수를 이해해보자. 먼저 p..

Programming/Python 2022.09.25
반응형