python

[python][데이터처리] 공백으로 채워진 값을 null로 바꾸기

csv 파일을 읽어와서 데이터프레임을 처리할 때, 공백으로 채워진 값을 null로 바꿔보자. 공백으로 채워진 값은 의미상 결측값이지만, null counts 에서는 제외된다. 따라서 공백을 결측으로 대체해야 한다.이 글에서는 데이터를 불러와서 공백을 결측으로 바꾸고, 다시 csv 파일로 저장하는 과정을 담고 있다.  1. stripstrip 함수는 문자열 양쪽 끝의 공백을 제거한다. 예를 들어, 다음과 같은 문자열에서 공백을 제거할 수 있다:txt = ' abc 'print(txt.strip()) # 'abc' 데이터프레임에서는 다음과 같이 사용할 수 있다:df[col] = df[col].str.strip()  2. replacestrip 함수만 사용하면 공백이 제거되지만, 빈 문자열은 여전히 결측..

파이썬 2024.07.21 0

[python/pandas] read_csv에서 인코딩 문제 해결 방법 (UnicodeDecodeError)

CSV 파일 인코딩 문제 해결 방법csv로 저장한 파일을 판다스로 불러올 때, 인코딩 문제로 에러가 발생할 수 있다.import pandas as pddf = pd.read_csv('fraud_list.csv') 에러메세지는 다음과 같다:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 599: invalid start byte 이 에러는 파일에 한글이 포함되어 있어 인코딩에 문제가 발생했기 때문이다. 이를 해결하기 위해 인코딩을 명시적으로 지정할 수 있다.한글이 포함된 파일의 경우 'cp949'나 'euc-kr' 인코딩을 사용하면 된다. 해결:import pandas as pddf = pd.read_csv('fraud_list.c..

파이썬 2024.07.21 2

[python] If문 간결하게 작성하는 방법 : 코드 가독성 높이기

파이썬에서 조건문을 사용할 때 가장 기본 형태는 다음과 같다.if (조건): (조건을 만족할 때 실행할 코드)else: (조건을 만족하지 않을 때 실행할 코드) 이러한 형태는 직관적이고 이해하기 쉬워 많은 사람들이 이용한다. 하지만 간단한 조건을 저리하는 경우에는 오히려 이러한 방식이 가독성을 해칠 수도 있고, 코드가 장황하게 느껴질 수 있다.따라서, 조건문을 더 간결하게 표현할 수 있는 방법을 정리해두고자 한다.   1. IF문 간단히 작성하기조건이 단순할 경우, 한 줄로 작성할 수 있다. if {조건}: 결과 예를 들어, 특정 조건이 참일 때만 출력하는 경우if x > 10: print('x는 10보다 크다') 이렇게 한 줄로 작성하면 코드가 더 깔끔해지고 읽기 쉬워진다.   2. IF-E..

파이썬 2024.09.12 0

[파이썬/python] strip 함수 - 공백 제거, 특정 문자 제거

파이썬에서 공백을 제거할 때 주로 사용하는 함수로 strip이 있다.비슷하게 사용되는 lstrip, rstrip 도 함께 살펴보자.   공백 제거strip 함수는 문자열 함수의 앞뒤에 있는 공백을 제거한다. 문자열의 왼쪽이나 오른쪽에 공백이 있다면, 인자 없이 strip함수를 적용해주면 된다.string = ' hello 'print(string.strip()) 출력결과hello   lstrip, rstrip 함수는 각각 왼쪽, 오른쪽의 공백만 제거한다.print('[', string.lstrip(), ']')print('[', string.rstrip(), ']') 출력결과[hello ][ hello]   특정 문자 제거strip 함수는 문자열에서 원하는 특정 문자도 제거할 수 있다. 함..

파이썬 2024.09.05 0

[python] 특정 디렉토리 내의 파일 또는 파일명 가져오기 (os.listdir/glob)

여러 개의 데이터를 불러와야 할 때, 특정 디렉토리에 데이터 파일의 정보를 불러오고, 경로를 지정하게 된다.이때, 주로 사용하는 파이썬 파이브러리는 os와 glob가 있다.두 방법 사이에 약간의 차이가 있다.  1) os.list_diros의 list_dir를 이용하면 해당 경로의 모든 하위 디렉토리 및 파일 가져오게 된다.파일의 경우 확장자에 상관 없이 모두 불러오게 되고, 리스트 형태로 반환한다.import ostarget_dir = "./public_dataset"# target_dir = "./public_dataset/"files = os.listdir(target_dir)print(files)  리스트로 가져오면 다음과 같이 반복문이나 조건문을 이용하여 지정한 경로의 파일을 처리할 수 있다.f..

파이썬 2024.07.20 0

코딩테스트

more

[백준 1715번][python] 카드 정렬하기

문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요하다. 그러나 10장과 40장을 합친 뒤, 합친 50장 묶음과 20장을 합친다면 (10 + 40) + (50 + 20) ..

코딩테스트 2025.05.05 0

[프로그래머스][python] 유연근무제

문제 설명 프로그래머스 사이트를 운영하는 그렙에서는 재택근무와 함께 출근 희망 시각을 자유롭게 정하는 유연근무제를 시행하고 있습니다. 제도 정착을 위해 오늘부터 일주일 동안 각자 설정한 출근 희망 시각에 늦지 않고 출근한 직원들에게 상품을 주는 이벤트를 진행하려고 합니다. 직원들은 일주일동안 자신이 설정한 출근 희망 시각 + 10분까지 어플로 출근해야 합니다. 예를 들어 출근 희망 시각이 9시 58분인 직원은 10시 8분까지 출근해야 합니다. 단, 토요일, 일요일의 출근 시각은 이벤트에 영향을 끼치지 않습니다. 직원들은 매일 한 번씩만 어플로 출근하고, 모든 시각은 시에 100을 곱하고 분을 더한 정수로 표현됩니다. 예를 들어 10시 13분은 1013이 되고 9시 58분은 958이 됩니다. 당신은 직원들..

코딩테스트 2025.03.22 0

[프로그래머스][python] 지게차와 크레인

작년에 응시한 하나은행 코딩테스트와 문제가 유사하다. (사실 예제까지 동일한 것 같다..!)  1차 시도from collections import dequedef dfs(grid, i, j, n, m): # 나가는 경로찾기 input: grid, point qu = deque() qu.append((i,j)) while qu: x, y = qu.popleft() if x == 0 or x == n-1 or y == 0 or y == m-1: return True for ni, nj in [(x+1, y), (x-1,y), (x,y+1), (x,y-1)]: if grid[ni][nj] == "0": ..

코딩테스트 2025.03.21 0

[프로그래머스][SQL] 자동차 대여 관련 문제

자동차 대여 관련 문제 - 프로그래머스 lv 2, 3, 4` CAR_RENTAL_COMPANY_CAR`   자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 제출한 답안SELECT CAR_TYPE, COUNT(*) AS CARSFROM CAR_RENTAL_COMPANY_CARWHERE (OPTIONS LIKE '%통풍시트%') OR (OPTIONS LIKE '%열선시트%') OR (OPTIONS LIKE '%가죽시트%')GROUP BY CAR_TYPEORDER BY CAR_TYPE   대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 풀이 과정SELECT CAR_ID, COUNT(*) AS RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE (START_DA..

코딩테스트 2024.10.12 0

[백준 11866번][python] 요세푸스 문제 0

문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)출력예제와 같이 요세푸스 순열을 출력한다.   제출한 답안N, K = map(int, input().split())a..

코딩테스트 2024.10.11 0