오늘은 맑음

Pandas/DataFrame 함수(1) 본문

Deep learning

Pandas/DataFrame 함수(1)

자전거 타는 구구 2019. 2. 23. 02:41
반응형

Pandas는 데이터 파일을 읽어 데이터 프레임을 만들어준다.


다음과 같은 포맷을 지원하여 다양한 데이터들을 이용하여 데이터 프레임을 만들 수 있다

  • CSV
  • EXCEL
  • HTML
  • JSON
  • HDF5
  • SAS
  • STATA
  • SQL


다양한 포맷을 지원하기 때문에 딥러닝/머신러닝에서 학습을 위한 데이터를 전처리 할 때 사용한다.

다음은 Pandas에서 사용하는 함수들을 알아보자.

예시 이미지는 Kaggle의 titanic문제를 공부하며 사용한 예시를 보여주겠다.


1. Data = pandas.rad_csv('filename.csv')

다음과 같이 실행하면 filename이라는 경로에 있는 csv파일을 읽어 데이터프레임을 만들어 Data에 넣어준다.



2. Data.head(N)

해당 Dataframe의 N개의 데이터를 출력시켜준다.

default는 5이다.



3. Data.info()

info를 사용하면 각 Series별 개수와 데이터 타입을 확인할 수 있다.

위의 경우 모두 891개씩 존재해야 하지만 Age와 Cabin의 경우 그 미만의 개수가 존재하기 때문에 데이터가 비어있음을 확인할 수 있다.


4. Data.isnull().sum()

Data 데이터 프레임의 label에 null이 존재하는지 여부를 확인할 수 있다.

다음 빨간 동그라미는 비어있는 데이터이므로 True로 표시된 것을 확인할 수 있다.

상단 head()함수를 이용해 출력하였을 때 0번째 데이터의 Cabin이 Nan으로 표시되어있다.


sum()을 추가함으로 항목의 총 합을 구할 수있다.

출력 결과를 보면 Age와 Cabin에 비어있는 항목이 있음을 확인할 수 있다.



5. Data['label'].value_counts()

label의 이름을 적으면 그 label에 해당하는 인자들의 개별 합을 구할 수 있다.


상단의 train에는 Pclass라는 항목이 있다.

따라서 train['Pclass'].value_counts()를 출력해보면 Pclass라는 항목은 1, 2, 3으로 구성되어 있으며 1의 총 합은 184, 2의 총 합은 216, 3의 총 합은 491임을 알 수 있다.


6. Data['label'].str.extract(pat, flag, expand)

pat은 추출할 조건을 입력으로 넣어준다

flag의 사용은 아직 잘 모르겠다. default는 0이다

expand의 경우 default = True다.

expand가 True인 경우 출력을 하나의 column단위로 나타내고, False의 경우 label단위로 출력한다.

train의 Series중 Name에서 대문자로 시작하여 이후에는 소문자가 나열되며 .을 만나면 탐색을 멈춰 string을 추출한다.

그 결과를 Title에 저장하게 했다.

따라서 Title에는 추출된 Mr, Mrs등의 데이터들이 저장되어 있는 것을 볼 수 있다.



7. Data.drop(label, axis, index/columns, level, inplace, errors)

제거하고 싶은 label의 이름을 입력한다. list로 여러개를 입력으로 줄 수 있다.

axis : deflault는 0이며, index단위로 지울지 column단위로 지울지 정해준다.

index/columns : axis = 1은 columns = labels와 같다

level : index가 여러개인 경우 제거할 level을 조건으로 줄 수 있다.

inplace : 만약 True이면 반환을 하지 않고 False면 반환을 한다.

errors : ignore을 옵션으로 주면 오류를 무시하고 기존 label을 삭제한다.


drop함수를 사용하여 'Name' label을 제거하였다.

현재 inplace = true를 주었으므로 drop함수 수행 후에 반환이 없기 때문에 출력이 되지 않는다.

하지만 False를 옵션으로 주게 되면 바로 출력이 되는 것을 확인할 수 있다.






반응형

'Deep learning' 카테고리의 다른 글

Convolution연산과 수식  (0) 2020.04.20
convolution transpose/ conv2d_transpose  (0) 2020.04.20
Comments