반응형

2차원 좌표(X,Y) 데이터가 있는 csv 데이터 파일을 읽어 왔는데, 해당 데이터 안에 괄호와 공백이 들어 있어서 데이터 전처리를 해야하는 경우가 발생했다. 그래서, csv 파일을 읽어온 다음 데이터 프레임 내에 특정 문자열을 replace하여 데이터 처리를 하였다.

 

특정 데이터 replace하는 방법

replace하는 방법은 2가지 방법이 있는데, 아래의 표를 보면 정확히 일치하는 문자열이냐 특정 문자열이 일치하는 문자열이냐에 대한 방법이 있다.

함수 내용
replace() 정확히 일치하는 문자열 변경
str.replace() 특정 문자열 일치하는 문자열 변경

 

기본적으로, 1번의 replace()의 경우에는 전체 데이터 프레임에 대해서 변경을 할 수 있다.

#라이브러리 import
import sys
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

#csv 가져오기
origin_data = pd.read_csv('D:\\testdata.csv')

 

위와 같이, origin_data라는 변수에 csv 파일을 가져왔다. 해당 데이터에서 NaN이 있어 fillna를 사용하여 (0, 0)으로 채워 넣었다. 아래의 사진이 그 결과다.

 

특정 데이터 replace하는 방법 - replace()

그래서 이 (0, 0)으로 되어 있는 것을 0으로 변경하려고 한다. 아래와 같이, replace를 통해 변경할 수 있다.

origin_data = origin_data.replace('(0, 0)', 0)

 

 

 

특정 데이터 replace하는 방법 - str.replace()

str.replace()를 사용하는 방법은 전체 데이터 프레임이 아닌 컬럼 기준으로 변경할 수 있다.

 

그래서, 아래와 같이 데이터 프레임의 컬럼 이름을 뽑아와서 반복문을 돌려서  문자열을 변경시킬 수 있다.

df['컬럼 이름'] = df['컬럼 이름].str.replace('타겟 문자열', '변경 문자열')
column_list = origin_data.columns

for column_name in column_list : 
    origin_data[column_name] = origin_data[column_name].str.replace('(', '')
    origin_data[column_name] = origin_data[column_name].str.replace(')', '')
    origin_data[column_name] = origin_data[column_name].str.replace(' ', '')
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기