본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : inplace = True 뜻

 

데이터프레임을 다루는 코드를 구글링 하다 보면, 해당 함수 안에 inplace = True 라는 코드가 입력되어 있는 것을 많이 볼 수 있는데요, inplace = True 란 무엇을 의미하는 걸까요?

 

 

먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다.

 

import pandas as pd

df = pd.DataFrame(
    {'name': ['coffee', 'tea', 'juice','milk', 'ade'],
     'price': [3000, 4000, 5000, 2000, 5000],
     'rating': [4, 3.5, 3.7, 3, 2],
     'category': [1,2,3,4,4]})

display(df)

 

	name	price	rating	category
0	coffee	3000	4.0	1
1	tea	4000	3.5	2
2	juice	5000	3.7	3
3	milk	2000	3.0	4
4	ade	5000	2.0	4

 

 

그리고, 특정 행을 삭제하기 위해 drop() 함수를 사용할 건데, 이때 inplace = True 를 함께 사용한 것과 사용하지 않은 코드를 비교해 보도록 하겠습니다.

먼저, inplace = True를 사용하지 않았을 때 입니다.

 

df.drop(columns=['category'])

 

	name	price	rating
0	coffee	3000	4.0
1	tea	4000	3.5
2	juice	5000	3.7
3	milk	2000	3.0
4	ade	5000	2.0

 

 

# df 불러오기
display(df)

 

	name	price	rating	category
0	coffee	3000	4.0	1
1	tea	4000	3.5	2
2	juice	5000	3.7	3
3	milk	2000	3.0	4
4	ade	5000	2.0	4

 

맨 위 drop() 함수를 사용했을 때 원하는 칼럼이 삭제되었지만, 별도로 변수에 저장을 하지 않았기 때문에 다시 데이터프레임(df) 을 불러오면 칼럼이 삭제되지 않은 것을 확인할 수 있습니다.

 

 

반면, inplace = True 를 함께 입력해서 보도록 하겠습니다.

 

df.drop(columns=['category'], inplace=True)

display(df)

 

	name	price	rating
0	coffee	3000	4.0
1	tea	4000	3.5
2	juice	5000	3.7
3	milk	2000	3.0
4	ade	5000	2.0

 

차이가 무엇인지 알아채셨나요? inplace = True 는 바로, 기존 데이터프레임에 변경된 설정으로 덮어쓰겠다는 의미를 가진답니다. 즉, inplace = True 를 입력하지 않으면 특정 변수에 저장하도록 코드를 입력해야 하는데, inplace = True를 사용하면 한번에 기존 변수에 덮어쓸 수 있습니다.

 

 

아래 코드를 보면서 다시 한 번 정리하도록 하겠습니다.

 

# 두 코드는 동일
df.drop(columns=['category'], inplace=True)

df = df.drop(columns=['category'])

 

위 코드가 동일한 기능을 한다는 것을 통해, inplace = True 는 기존 데이터프레임에 덮어쓴다는 것을 알 수 있습니다.