생성 



DataFrame의 열 생성은 쉽게 만들 수 있다.(판다스의 가장 큰 장점이기도 하다.)

일단 2가지로 나눌 수 있다. 



1) 새로 만드는 열의 모든 데이터를 상수로 채워 넣는 경우



이 경우는 주로, 새로운 열(피처)을 만들기 위해서 해주는 경우가 많다.
어려울 것 없이 

 

titanic_df['Age_0'] = 0 
#새로 만들어진 'Age_0'열의 모든 value 값들이 0으로 채워진다. 
titanic_df.head(3)

'Age_0'이라는 열이 존재하는 열이 아니라, 새로 생성할 열의 이름을 대괄호 안에 작은 따옴표로 지정해 준 뒤
등호 오른쪽에 상수를 넣으면 해당 열의 모든 Value 값들이 해당 상수 값으로 채워지는 것을 확인 할 수 있다. 

 

2) 기존에 있는 열(column)을 이용하여 새로운 열을 생성하는 경우



1)의 경우와 등호 기준 왼쪽은 동일하다. 

다른 부분은 등호의 오른쪽 부분인데, 이 때는 해당 열을 가지고 상수 연산하듯이 하면 바로 인덱스에 맞는 value 값들이 자동으로 연산이 되어 새로운 열로 들어가는 것을 확인할 수 있다.

1)의 방식과 종합하여 새로운 열을 만드는 것도 가능하다. 

 

 

#'Age' 열의 value값들이 10배가 되어 새로운 'Age_by_10'이라는 열에 동일한 인덱스로 들어가게 된다. 
tiatnic_df['Age_by_10'] = titanic_df['Age'] * 10 
#1의 방식과 2의 방식을 종합하여 새로운 열을 생성하는 것이 가능하다.  
titanic_df['Family_No'] = titanic_df['SibSp'] + titanic_df['Parch'] + 1


 

 

수정 

 



DataFrame 열 단위의 수정은 열의 생성과 같은 맥락으로 이해하면 쉽게 배울수 있다.  열을 새로 생성하는 경우에는 새로운 열의 이름을 등호 기준 왼쪽 대괄호 안에 입력했었다. 

하지만, 열을 수정하고 싶은 경우에는 동일한 위치에 기존에 내가 수정하고 싶은 열의 이름을 입력을 하고, 등호 오른쪽에 수정하는 내용을 입력하면 된다. 
이 때 수정하는 내용은 생성할 때 사용하는 방법과 동일하게 사용할 수 있다. 



#기존에 있는 'Age_by_10'열에 각각 100씩 더한 값으로 수정한다.('수정한다' = '업데이트 한다'라고 표현을 하기도 한다.) 
titanic_df['Age_by_10'] = titanic_df['Age_by_10'] + 100
titanic_df.head(3)

 


 

 

 

삭제

 



DataFrame에서 삭제는 pd.drop()이라는 매서드를 이용한다. 삭제는 조금 다른 파라미터들이 존재하는데, 
행과 열의 방향을 정해주는 axis와 삭제한 내용에 대한 저장 여부를 정해주는 inplace 이다.

 

axis


drop() 매서는 내에서 axis = 0 혹은 axis = 1로 정해주어야 한다. 열을 삭제를 하는 경우, 
axis = 1이라고 적어야 하며, axis = 0이라고 하는 경우는 행방향 삭제가 이루어진다. 


inplace 


inplace 파라미터는 True혹은 False 두 값 중 하나의 값을 가진다. 
True라고 적을 경우에는 기존의 DataFrame이 저장되어 있는 변수에 삭제를 수행하고
변화된 DataFrame이 기존의 DataFrame을 대신하여 저장이 된다.
False라고 적을 경우에는 삭제를 수행하지만, 기존의 변수에는 삭제 이전에 원본 DataFrame이 계속 저장되어 있다.
inplace = False로 하는 경우, 별도의 변수에 삭제를 수행한 DataFrame을 저장하고, 원본은 혹시 모를 상황을 대비하여 
남겨두는 것이다. 

 

# axis = 1으로 열방향 삭제를 진행
# inplace의 default value는 False이므로, 새로운 변수(titanic_drop_df)에는 삭제가 수행된 DataFrame이,
# 기존의 변수(titanic_df)에는 'Age_0'열이 존재하는 DataFrame이 저장되어 있다. 

titanic_drop_df = titanic_df.drop('Age_0', axis = 1)
titanic_drop_df.head(3)

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기