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들이 삭제된 것을 확인할 수 있다.