본문 바로가기

DS/fast campus daily report

6.12 (머신러닝과 데이터분석 A-Z) Dataframe 원하는 column만 선택하기, Dataframe 원하는 row(데이터)만 선택하기, DataFrame boolean selection으로 데이터 선택하기, DataFrame에 column 추가 삭제하기

Dataframe 원하는 column만 선택하기 (4:32)

  • []를 이용해서 column 추출, [] 안의 parameter는 column의 이름. 없으면 exception 발생
  • 컬럼 인덱스 경우, 인덱스 리스트 사용가능 , train_data[['Survived', 'Age', 'something..']]
  • train_data['Suvived'] (return type이 Series) vs train_data[['Survived']] (return type이 dataframe)

Dataframe 원하는 row(데이터)만 선택하기(8:08)

dataframe slicing

  • []가 column 선택에 사용, 
  • but, slicing은 row level 지원됨

row 선택하기

  • loc, iloc으로 row 선택가능, column 동시 선택가능
  • loc : 인덱스 자체를 사용
  • iloc : 0 based index로 사용
train_datda.index = np.arange(100,105)
train_data.loc[986]
train_data.loc[[986,199,100,101]] // list형태로 원하는 row 넘겨줌

train_data.iloc[[0,100,200,999]] // 0 based index 제공함

// column 동시 선택하기
train_dadta.loc[[0,100,200,300],['Survived', 'Name', 'Sex', 'Age']]

==> []는 column 선택에 사용, row 선택에는 loc / iloc 사용, loc / iloc 는 column 동시사용 가능함

DataFrame boolean selection으로 데이터 선택하기(3:46)

조건에 맞는 row만 dataframe에서 selection 하기

30대이면서 1등석에 탄 사람 선택하기

class_ = train_data['Pclass']  == 1
age_ = (train_data['Age']>=30) & (train_data['Age'] < 40)

train_data[class_ & age_]

DataFrame에 column 추가 삭제하기(7:57)

  • 삭제 : drop, list 이용 multi  삭제 가능
// Series에 scalar 2를 곱해서 Age_double column에 매핑한다
train_data['Age_double'] = train_datda['Age'] * 2 

// age_double + age 
train_data['Age_triple'] = train_datda['Age_double'] + train_data['Age']

// 새로 추가되는 column은 dataframe의 가장 뒤에 insert 됨
// insert 함수 사용
train_data.insert(3, 'Fare10', train_data)


// column 삭제하기
d_return = train_data.drop('Age_triple', axis=1)

// 리스트로 column 삭제하기, inplace: 복사본을 만들지 안 만들지 결정함
list_d_return = train_data.drop(['Age_triple','Age'], axis=1, inplace=True)

 

학습 후