AI와 데이터 기초1 - 3일차
데이터의 정보 확인
데이터 읽어오기
- import pandas as pd
- .CSV 데이터 읽어오기
- 변수명 = pd.read_csv('파일경로명', encoding='인코딩방식')
- ","로 분리된 .csv 파일을 불러올 때
- delimiter 옵션은 새략하면 "," 로 인식
- 인코딩 방식 : 'EUC_KR'(한글이 포함된 일반적인 경우)/'cp949'(MS office에서 저장한 파일 형식)
- 변수명 = pd.read_excel('파일경로명')
데이터 정보 확인하기
- 데이터 정보 보기
- 변수명.shape : 행과 열의 개수 확인
- 변수명.info() : 데이터 타입, 각 아이템 개수, 누락데이터 수 등 확인
- 변수명.describe(include=매개변수) : 숫자형 데이터의 통계치 계산
- include='object' : 문자열의 통계분포 확인
데이터에서 일부 내용 보기
- 데이터에서 일부 내용 보기
- 변수명 : 전체 데이터 보기
- 변수명.head() : 위에서 5행 보기 / 변수명.head(3) : 위에서 3행 보기
- 변수명.tail() : 아래서 5행 보기 / 변수명.tail(3) : 아래에서 3행 보기
- 변수명[:] : 원하는 행부터 원하는 행까지 보기
- 변수명[''] : 원하는 열 데이터 보기
- 열 이름에는 작은 따옴표('') 또는 큰따옴표("")
- 여러 열 선택 : 변수명[['열이름1', '열이름2']]
- 변수명[''][:] : 원하는 열의 특정 행 보기
- 변수명['열이름'].value_counts(normalize=True, sort=False)
- 해당 열의 각 데이터의 개수 확인
- normalize=True : 데이터가 차지하는 비율을 확인하고자 할 때 사용
- sort=False : 결과에 대한 내림차순을 적용하지 않음
데이터 열 정리하기
- 데이터 열 연산 및 새로운 열 생성하기
- 변수명['열이름'] = 변수명['열이름'] + 변수명['열이름']
- 사칙연산 가능
- 해당 열이름이 없으면 새로운 열 생성
- 단, 숫자형 데이터에 한해 연산 가능
- 데이터에서 열이름 변경하기
- 변수명.rename(columns = {'열이름' : '새로운 열이름'}, inplace=True)
- 데이터가 저장된 변수명의 열이름을 새로운 열 이름으로 변경
- inplace=True 옵션은 원본데이터를 변경함
- 열 데이터 삭제
- 변수명.drop(columns=['열이름'], axis=1, inplace=True)
- 여러 열 삭제 : 변수명.drop(columns=['열이름1', '열이름2'], axis=1)
- inplace=True : 원본을 변경함
데이터 행 정리하기
- 행 데이터 삭제
- 변수명.drop(index='행번호', axis=0) : index가 0인 행 삭제
- 여러 행 삭제 : 변수명.drop(index=[0, 1, 2], axis=0) : index가 0, 1, 2인 행 (3줄) 삭제
- 변수명.drop(변수명.index[0:17], axis=0) : 0 ~ 16 index행 삭제
- inplace=True 옵션을 추가하면 원본을 변경함
- 인덱스 리셋
- 변수명.reset_index(drop=True, inplace=True)
- drop=True 옵션은 기존 인덱스는 버리고 새로운 인덱스 설정
데이터 결합하기
- 열방향으로 테이블 결합하기
- 변수명 = pd.merge(변수명1, 변수명2, on='결합기준열이름', how='결합방향')
- 2개의 테이블을 열방향으로 결합
- 변수명1, 변수명2 : DataFrame 구조를 갖는 테이블
- 결합하고자 하는 테이블들은 반드시 동일한 열이름이 존재해야 함
- on='결합기준열이름' : 두개의 테이블을 결합할 때 기준이 되는 열이름
- on=['열이름1', '열이름2'] : 결합 기준열이 여러 개일 경우
- how='outer' : 일치하지 않는 결합기준의 경우 행으로 추가
- 행방향으로 테이블 결합하기
- 변수명 = pd.concat([변수명1, 변수명2])
- 변수명2를 변수명1에 행방향으로 추가
- 변수명1과 변수명2에는 따옴표를 묶지 않는다.
조건에 맞는 데이터 추출하기
- 변수명['열이름'] 검색 조건
- 검색조건 : 검색하고자 하는 열이름을 비교 연산자와 논리 연산자를 사용하여 기술
- 변수명.query('검색조건')[['열이름1' '열이름2']]
- []내에 출력하고자 하는 열이름 기술
- 단, 열이 2개 이상일 경우에는 대괄호([[]]) 2개 사용
데이터 그룹 및 정렬하기
- 데이터 그룹화하여 간단한 통계 확인하기
- 변수명.groupby('그룹열이름')[['열이름1', '열이름2']].통계함수()
- 그룹열 이름 : 그룹화할 열의 이름
- 열이름 : 그룹별로 통계 데이터를 확인하고자 하는 열의 이름
- 데이터 정렬하기
- 변수명.sort_values(['열이름'], ascending=True)
- ascending = True : 오름차순, False : 내림차순, 생략 : 오름차순