일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- gcc 컴파일
- AMBA
- makefile
- Pyverilog 실행
- pytest-pythonpath 설치 오류
- DNN Accelerator
- Design DNN Accelerator
- 이진수 곱셈 알고리즘
- pygraphviz 설치 오류
- DNN 가속기
- systolic array
- Pyverilog 설치
- linux makefile 작성
- pyverilog 설치 오류
- linux c++ 컴파일
- 남산업힐
- 클럭 게이팅
- 데이터 해저드
- Makefile compile
- 딥러닝 가속기
- Pyvrilog tutorial
- CDC
- Pyverilog 튜토리얼
- Data HAzard
- CLOCK GATING
- 컨벌루션 연산
- 대구 반도체 설계기업 특화
- linux c 컴파일
- gpgpu-sim
- CUDA
- Today
- Total
오늘은 맑음
Pandas/DataFrame 함수(1) 본문
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 |