파이썬

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

도도o 2024. 7. 21. 01:12

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)