csv 파일을 읽어와서 데이터프레임을 처리할 때, 공백으로 채워진 값을 null로 바꿔보자.
공백으로 채워진 값은 의미상 결측값이지만, null counts 에서는 제외된다. 따라서 공백을 결측으로 대체해야 한다.
이 글에서는 데이터를 불러와서 공백을 결측으로 바꾸고, 다시 csv 파일로 저장하는 과정을 담고 있다.
1. strip
strip 함수는 문자열 양쪽 끝의 공백을 제거한다. 예를 들어, 다음과 같은 문자열에서 공백을 제거할 수 있다:
txt = ' abc '
print(txt.strip()) # 'abc'
데이터프레임에서는 다음과 같이 사용할 수 있다:
df[col] = df[col].str.strip()
2. replace
strip 함수만 사용하면 공백이 제거되지만, 빈 문자열은 여전히 결측값으로 인식되지 않습니다. 이를 해결하기 위해 빈 문자열을 결측값(None)으로 대체해야 합니다:
df[col] = df[col].replace('', None)
최종코드
모든 문자열 타입의 컬럼에 대해 공백을 제거하고, 빈 칸은 모두 결측값으로 바꾸는 코드는 다음과 같이 작성된다:
import pandas as pd
# CSV 파일 불러오기
df = pd.read_csv('fraud.txt', sep=',')
print(df.shape) # (14303, 68)
# 문자열 타입의 모든 컬럼에 대해 처리
for col in df.select_dtypes(include=['object']).columns:
# 컬럼 값의 좌우 공백 제거
df[col] = df[col].str.strip()
# 공백 값을 None으로 변경
df[col] = df[col].replace('', None)
# 수정된 데이터프레임을 CSV 파일로 저장
df.to_csv('fraud.csv', index=False)
'파이썬' 카테고리의 다른 글
[python] If문 간결하게 작성하는 방법 : 코드 가독성 높이기 (0) | 2024.09.12 |
---|---|
[파이썬/python] strip 함수 - 공백 제거, 특정 문자 제거 (0) | 2024.09.05 |
[python/pandas] read_csv에서 인코딩 문제 해결 방법 (UnicodeDecodeError) (2) | 2024.07.21 |
[python/pandas] csv 파일을 DataFrame으로 불러오기 / csv로 저장하기 (read_csv, to_csv) (1) | 2024.07.20 |
[python] 특정 디렉토리 내의 파일 또는 파일명 가져오기 (os.listdir/glob) (0) | 2024.07.20 |