파이썬을 이용한 데이터 분석
1주차는 간단한 OT를 진행하였고
2주차부터 수업이 진행되었습니다.
데이터 분석에 파이썬을 이용하고 그 중
Pandas에서 제공하는 2가지 데이터 구조 이해
Dataframe / Series
titanic 데이터를 가져옴
(안되는 경우에는 pip install seaborn 진행)
데이터프레임으로 불러온 titanic을 확인하고
Series는 우리가 원하는 인덱스 명을 적을 수 있음
간단한 기초 문법 정리
shape를 활용하여 전체 데이터프레임의 행과 열을 확인
columns : 컬럼만 확인
info() : 기본적인 정보 확인
dtypes : 각 컬럼에서의 타입 확인
describe() : 기초 통계값 확인 (수치형 데이터의 기초통계값)
describe(include='all') : 전체 통계값 확인
head() : 상위 5개 데이터가 나옴
head(20) : 상위 20개 데이터가 나옴
tail() : 하위 5개 데이터가 나옴
- 2차원 구조 행과 열로 이뤄진 형태니 우리도 행과 열 가지고 데이터를 추출 또는 접근할 수 있다.
- 열기준 ( 컬럼 기준 )
- [col1]
- [[col1, col2]]
데이터프레임에서 원하는 컬럼만 뽑아서 나타내기
- 행기준( 인덱스기준으로 접근! )
- 인덱스 기준으로 접근하는 법은 2가지 방법
- loc : 행 인덱스 기준으로 추출 (컬럼은 문자열로도 가능), 변수의 개념으로 인덱스를 추출할 수 있다. 다만 (-1 끝값에 대한 적용은 불가)
- iloc : 인덱스 기준-> (추출한 인덱스기준),인덱스 변수로도 가능, 모든지 번호로만 다 인식 ( 컬럼도 번호로 지정해야 한다.) (끝값 -1 가능)
- 리스트에서 Index 접근법 하면 []
- tt.loc[index]
- tt.iloc[index]
loc[] / iloc[] : 행 인덱스 기준으로 추출
iloc[-1] : 끝 행이 나옴
loc[-1] : 에러 발생
여러 가지 방식으로 시도해도 동일한 값이 나옴
age 컬럼의 4 인데스의 값이 나옴(전체 데이터프레임에서 확인)
loc[::] / iloc[::] : 전체 데이터프레임이 나옴
loc[::2] : 행이 2의 배수인 것만 나오게 됨
loc[1:5] : tt.loc[[1,2,3,4,5]]와 동일
loc[::10] : 10만큼 증가되어 890까지 출력
loc[0:200:10] : 범위는 0~200까지 10씩 증가한 값들만 출력
- loc, iloc에 가장 큰 차이 중 하나 ( 컬럼에 대한 접근 )
- iloc은 모든 컬럼을 숫자로만 접근한다.
- python 대부분은 행시작 열
- tt.loc[행,열]
loc[0:200:5,['age']] : 각 컬럼별로 확인
+ iloc는 문자열이 올 수 없다
iloc[::2,[0,2]] : iloc만 가능 -> loc는 안됨
loc[num_3] / iloc[num_3] : 정의해서 넣으면 둘 다 가능
['fare'].mean() : fare컬럼 값들의 평균
['fare'].sum() : fare컬럼 값들의 합
['fare'].median() : fare 컬럼 값들의 중간값
+
numpy를 이용해서
mean(tt['fare']) : ['fare'].mean()와 동일한 값이 나온다
최대/최소 값의 인덱스 반환
값이 같이 나오게 된다
groupby() : 그룹별로 묶어서 확인
groupby('그룹으로 묶을 컬럼')['통계치를 볼 컬럼'].원하는 통계치()
- 원하는 값을 접근/추출?
- 데이터 프레임에 어떤 식으로 접근? -> 행과 열로 접근, 열과 행으로 접근하는 방법 존재
loc[](행)의 위치에 따라 열에서 행을 구하는 것인지 행에서 열을 구하는 것인지 알 수 있다
각자 문제를 직접 만들어보고 내가 찾아가는 방식으로 공부하면 더 잘 이해할 수 있다
데이터 분석에 필요한 기초문법(2)
- query()
- sort_values()
- groupby()
- assign(), lambda
- agg()
- merge()
- concat()
- str()
- 시계열
- query()
- 데이터를 추출하기 위한 조건 -> 내가 원하는 데이터를 추출하기 위해 추가적 사용 문법
- e.g. emarked=s인경우?, alone=Ture 참인 경우?, fare>평균이상인 경우?
- 요소의 특정갑을 접근해서 데이터를 추출하는 케이스
- tt.query('요구조건')


query('요구조건')
== : 동일하다
!= : 동일하지 않다
동일하게 나옴
수치형 데이터로 접근
query("요구사항의 디테일")
직접 문제를 만들면서 공부하기
https://linktr.ee/official.bdaa
BDA | Instagram | Linktree
Big Data Analysis | 빅데이터분석학회
linktr.ee
혹시 학회가 궁금하시거나 다음 기수에 참여하고 싶은 분들은 위 페이지에서 자세한 사항을 확인해주세요😃
'BDA 학회 > BDA학회_8기' 카테고리의 다른 글
[BDA 데이터분석 전처리 (Pandas) 5회차]_결측치 확인/대치방법/시각화 (0) | 2024.04.04 |
---|---|
[BDA 데이터분석 전처리 (Pandas) 4회차]_결측치와 대체 방법 정리 (0) | 2024.03.28 |
[BDA 데이터분석 전처리 (Pandas) 3회차]_Pandas 기초 문법 정리2 (1) | 2024.03.19 |