python/pandas

13. pandas DataFrame - column 추가, 삭제

Abokadoh 2023. 2. 18. 19:12

새로운 컬럼을 추가하는 일은 굉장히 빈번하게 벌어지는 일이며, 개념적으론 새로운 변수를 DataFrame에 추가한다는 의미일 것이다.

 

DataFrame의 column을 추가해보자.

 


- (1) DataFrame column 추가하기 

 

우선 DataFrame을 불러오고

# <in>
import pandas as pd

train_data = pd.read_csv('./train.csv')

train_data.head()

 

 

다른 패키지와 마찬가지로 대괄호[ ]연산을 사용하여 추가할 수 있다.

# <in>
train_data['Age_double'] = train_data['Age'] * 2
train_data.head()

DataFrame의 맨 오른쪽에 새로운 col이 추가된 것을 확인할 수 있다.

 

 

기존의 column사이에 새로운 col을 추가하고 싶을 때는 insert() 함수를 사용한다.


- DataFrame.insert()

# <in>
train_data.insert(3, 'Fare10', train_data['Fare'] / 10 )
train_data.head()

3번째 컬럼에 새로운 컬럼이 추가된 것을 확인할 수 있다.

 


 

이번엔 추가한 컬럼을 삭제해보자.

- DataFrame.drop() /  column 삭제

DataFrame에서는 drop()함수를 사용해 column을 삭제할 수 있다.

위 DataFrame에서 'Ticket' column을 삭제해보자.

# <in>
train_data.drop('Ticket', axis=1)

'Ticket' 컬럼이 삭제된 DataFrame이 반환된다.

 

하지만 이는 복사본일뿐 원본에는 영향이 닿지 않는다.

 

이 경우 drop함수에 inplace parameter를 추가해준다.

# <in>
train_data.drop('Ticket', axis=1, inplace = True)

inpalce parameter는 default 값이 False이다.

 

또한 리스트를 활용하여 multiple한 삭제도 가능하다.

train_data.head()

Name, Sex, Age 컬럼을 원본 데이터에서 삭제해보자.

# <in>
train_data.drop(['Name','Sex','Age'], axis = 1, inplace = True)
train_data

drop함수에 column 명들을 리스트값으로 넣으면 위와 같이 복수개의 컬럼을 한 번에 삭제할 수 있다.

 

또한 inplace 파라미터를 True값으로 두어, 복사본이 아닌 원본 DataFrame에 명시한 column들이 삭제된 것을 확인할 수 있다.