본문 바로가기
프로그래밍/Python

[python(파이썬)]dataframe 특정 컬럼의 값만 바꾸기(replace specific columns)

by Mr.noobiest 2022. 7. 22.

간혹 가다 dataframe의  값들중 빈칸인데도 Nan이 아닌 ""로 되어 있는 경우가 있다.

그렇다고 fillna를 써서 모든 Nan값을 빈칸으로 만들고 싶지 않은 경우가 있다. 그럴경우에는 어떻게하는지 기록한다.

 

 

ex)요런 df(temp_df)가 있다고 가정했을때

col_1 col_2 col_3 col_4 col_5 col_6
0

값_1 값_2_1 Nan 1
1

값_2 값_2_2 Nan 1
2

값_3 값_2_3 Nan 1
3 Nan 값_4 값_2_4 Nan 1
4 Nan 값_5 값_2_5 Nan 1
5 Nan 값_6 값_2_6 1

1
6 Nan 값_7 값_2_7 2

1

 

 

 

import numpy as np

temp_dict={"" : np.nan}

temp_df=temp_df.replace({"col_2": temp_dict})

 

위와 같이 작성하면 아래와 같이 "col_2"의 값들중 ""으로 된 부분들만 Nan으로 변경해준다.

col_1 col_2 col_3 col_4 col_5 col_6
0 Nan 값_1 값_2_1 Nan 1
1 Nan 값_2 값_2_2 Nan 1
2 Nan 값_3 값_2_3 Nan 1
3 Nan 값_4 값_2_4 Nan 1
4 Nan 값_5 값_2_5 Nan 1
5 Nan 값_6 값_2_6 1 1
6 Nan 값_7 값_2_7 2 1

 

이걸 응용하면 아래와 같이 여러개의 컬럼들의 특정 값만 변경가능하다.

 

 

temp_dict={np.nan:"", 1:10 }

temp_df=temp_df.replace({"col_5": temp_dict})

 

col_5의 1은 10으로 np.nan인 값은 빈 String으로 변경이 가능하다.

col_1 col_2 col_3 col_4 col_5 col_6
0 Nan 값_1 값_2_1   1
1 Nan 값_2 값_2_2   1
2 Nan 값_3 값_2_3   1
3 Nan 값_4 값_2_4   1
4 Nan 값_5 값_2_5   1
5 Nan 값_6 값_2_6 10 1
6 Nan 값_7 값_2_7 2 1

 

 

끝.

728x90
반응형