Certificate/data science-IBM

data cleansing

Olivia-BlackCherry 2023. 5. 4. 08:57

pre-procecessing

1. dealing with missing values in python 

-isnull(), notnull(), value_count()

-dropna()

df.replace("?", np.nan, inplace = True)

 

2. data formatting 

-bring data into a common standard of expressions(n.y->newyork)

-applying calculations to an entire column(convert kg to t)

-incorrect data types(sometimes the wrong data type is assigned to feature.

Change object to numerous type.

dataframe.dtypes() - identify

dataframe.astypes()- to convert data type

df.rename(columns={'highway-mpg':'highway-L/100km'}, inplace=True)

 

<참고>

inplace는 Python에서 많이 사용되는 함수 인자 중 하나입니다. 이 인자를 사용하면 함수가 호출된 객체 자체를 수정하게 됩니다.

파일 이름을 바꾸는 os.rename() 함수에서 inplace=True를 설정하면, 파일 이름을 바꾸는 대신에, 파일 자체의 이름을 변경합니다. 따라서, 이 작업은 매우 조심스럽게 수행해야 합니다.

다른 많은 함수에서도 inplace 인자를 사용할 수 있습니다. 예를 들어, pandas 라이브러리에서 inplace=True를 설정하면, DataFrame이나 Series 객체가 원래 객체에 직접적으로 수정됩니다. 그러나 이러한 방식은 보통 사용하지 않는 것이 좋습니다. 대신, 새로운 객체를 만들어서 값을 변경하고, 그 결과를 새로운 변수에 할당하는 것이 권장됩니다.

 

 

3. data normalization

-uniform the features value with different range

-similar value range, similar intrinsic influence on analytical model

 

-simple feature scaling: 모든 값 / 최대값 

-min-max: (모든 값- 최소값) / (최대값-최소값)

-z-score: (모든값-평균) / 표준편차

 

Simple feature scaling: 모든 값에 대해 최대값으로 나누어줍니다. 따라서, 모든 값은 0과 1사이에 위치하게 됩니다. 예를 들어, 값이 2, 4, 6, 8이라면, 각각을 8로 나누어 0.25, 0.5, 0.75, 1로 변환합니다.

Min-max scaling: 모든 값에 대해 최소값을 빼주고, 그 결과를 최대값과 최소값의 차이로 나누어줍니다. 따라서, 모든 값은 0과 1사이에 위치하게 됩니다. 예를 들어, 값이 2, 4, 6, 8이라면, 최소값인 2를 빼서 0, 2, 4, 6으로 변환하고, 이를 최대값 8과 최소값 2의 차이인 6으로 나누어 0, 0.33, 0.67, 1로 변환합니다.

Z-score scaling: 모든 값에 대해 평균을 빼주고, 그 결과를 표준편차로 나누어줍니다. 따라서, 평균이 0이고 표준편차가 1인 표준정규분포를 따르는 값을 갖게 됩니다. 예를 들어, 값이 2, 4, 6, 8이라면, 평균인 5를 빼서 -3, -1, 1, 3으로 변환하고, 이를 표준편차인 2로 나누어 -1.5, -0.5, 0.5, 1.5로 변환합니다.

 

 

4. binning

-grouping of value into 'bins' 

-converts numeric into categorical variables

-group a set of numerical values into a set of 'bins' 

(1~10) small

(11~20)medium

(21~30)large

-linspace(최소, 최대, 몇개)

bins = np.linspace(min(df["horsepower"]), max(df["horsepower"]), 4)

 

 

5. turning categorical variables into quantitiative variables in python 

categorical variables->numerical format

-one hot encoding(assingn 0 or 1 each category )

get_dummies()

dummy_variable_1 = pd.get_dummies(df["fuel-type"])