Jost Do It.

그냥 IT해.

반응형

pandas 2

[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
반응형