본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 특정 열(칼럼)에 있는 데이터를 연산해서 결측치(NaN) 채우기 - fillna()

 

만약 아래와 같은 데이터프레임이 있다고 가정할 때,

 

	item	count	price	total
0	coffee	1	3000	3000.0
1	juice	5	4000	20000.0
2	ade	2	5000	NaN
3	milk	1	2000	2000.0
4	tea	3	4000	NaN
5	water	2	1000	2000.0

 

'count' 칼럼과 'price' 칼럼에 있는 데이터의 곱이 'total' 칼럼의 데이터에 해당되는 것을 살펴볼 수 있는데요,

total 칼럼에 2번째 행과 4번째 행을 보면 결측값(NaN)으로 비워져 있는 것을 볼 수 있습니다.

 

일일이 비어있는 데이터에 값을 넣어줘도 되지만 데이터의 양이 매우 많으면 많은 시간이 소요될 수 있습니다.

따라서 fillna() 라는 함수를 사용하면 한 번에 연산해서 결측값을 채울 수 있는데요, 

만약 'total' 칼럼에 비어있는 값을 'count'와 'price'에 있는 값의 곱으로 채우고 싶다면 다음과 같이 코드를 입력하면 됩니다.

 

df['total'] = df['total'].fillna(df['price']*df['count'])

 

코드를 보면 df['total'] 에서 비어있는 값을 fillna() 함수를 이용해서 채우려고 하는데, 그 값을 df['price'] * df['count'] 로 하겠다는 것을 의미합니다.

 

따라서 위와 같이 코드를 입력하고 실행하면 다음과 같이 결측치가 채워지는 것을 확인할 수 있답니다.

 

	item	count	price	total
0	coffee	1	3000	3000.0
1	juice	5	4000	20000.0
2	ade	2	5000	10000.0
3	milk	1	2000	2000.0
4	tea	3	4000	12000.0
5	water	2	1000	2000.0