엑셀은 행과 열로 이루어진 표에 입력된 데이터를 처리하는데 탁월 (사무용)
넘파이는 2차원 행렬 형태의 데이터를 지원하지만 넘파이는 데이터 속성을 표시하는 행이나 열의 레이블을 자지고 있지않아 한계가 있다. 이를 해결하기 위한것이 판다스 패키지이다.(데이터 분석용)
판다스는 엑셀과 같은 스프레드시트 프로그램 보다 연산을 빠르고 효율적으로 할 수 있다.
다양한 형태의 데이터에 적합
-이종 자료형의 열을 가진 테이블 테이터, 시계열 데이터(주식, 날씨), 레이블을 가진 다양한 행렬 데이터, 사양한 관측 통계
핵심구조
- 시리즈: 1차원 구조를 가지는 하나의 열
- 데이터프레임 : 복수의 열을 가진 2차원 데이터 (엑셀의 시트)
판다스가 잘하는일
- 결측 데이터 처리 (비어있는 데이터 처리
- 데이터 추가 삭제 (새로운 열의 추가, 특정 열의 삭제 등)
- 데이터 정렬과 다양한 데이터 조작
- 파이썬의 리스트, 딕셔너리, 넘파이의 배열 등을 데이터 프레임으로 변환할 수 있다.
- CSV파일이나, 엑셀파일을 열 수 있다.
- URL을 통하여 웹사이트의 CSV 또는 JSON과같은 원격 파일 또는 데이터 베이스를 열 수 있다.
데이터 보기 및 검사
- mean()으로 모든열의 평균을 계산할 수 있다.
- corr() 로 데이터 프레임의 열 사이의 상관 관계를 게산할 수 있다.
- count() 로 각 데이터 프레임 열에서 null이 아닌 값의 개수를 계산할 수 있다.
필터, 정렬 및 그룹화
- sort_values()로 데이터를 정렬할 수 있다.
- 조건을 사용하여 열을 필터링 할 수 있다.
- groupby()를 이용하여 기준에 따라 몇개의 그룹으로 데이터를 분할할 수 있다.
데이터 정제
- 데이터의 누락 값을 확인할수 있다.
- 누락된 데이터를 특정한 값(최빈값, 평균값 등)으로 대체할 수 있다.(분석에 정확도를 위해서)
pandas 데이터 구조(모두 넘파이 배열을 이용하여 구현되어 속도가 빠름)
시리즈 : 1차원 레이블이 붙어있는 1차원 벡터 (크기 변경 불가)
데이터프레임 : 2차원 행과 열로 되어 있는 2차원 테이블, 각열은 시리즈로 되어있음 (크기 변경 가능)
각 행의 이름은 인덱스, 열의 이름은 컬럼스라고 부른다.
np.nan 은 값 없음을 의미하는것으로 수치 데이터가 없을 경우 이를 표기하는 방법이다.
NAN과 동일한 표기이다. (=null)
nan이 있을 경우 실수형
딕셔너리 형식의 데이터로 데이터 프레임을 생성한다.
name_series = pd.Series(['김수안', '김수정', '박동윤', '강이안', '강지안'])
age_series= pd.Series([19, 24, 22, 19, 16])
sex_series= pd.Series(['여', '여', '남', '여', '남'])
age_series= pd.Series([4.35, 3.68, 4.23, 4.25, 4.37])
({'이름': name_series, '나이': age_series, '성별': sex_series, '평점': grade_series})
인덱스 번호는 자동으로 생성
이름 나이 성별 평점
0 김수안 19 여 4.35
1 김수정 24 여 3.68
2 박동윤 22 남 4.23
3 강이안 19 여 4.25
4 강지안 16 남 4.37
데이터파일 읽기
판다스 모듈은 CSV 파일을 읽어들여서 데이터 프레임으로 바꾸는 작업을 간단하게 할 수 있다.
이때 CSV파일은 데이터프레임이 될 수 있도록 각 행이 같은 구조로 되어있고, 각 열은 동일한 자료형을 가진 시리즈로 되어 있어야 한다.
DataFrame 다루기 (0) | 2022.12.29 |
---|---|
데이터 분석을 위한 라이브러리 1(Numpy) (0) | 2022.12.19 |
데이터분석에 파이썬을 활용하는 이유 (0) | 2022.12.19 |