기초 문법 정리2
지난 시간과 동일하게 titanic데이터를 이용
- 저번 시간에 이어 데이터 분석에 필요한 기초 문법 진행
- sort 순서 정렬하기
- sort_values(col1), 오름/내림차순 정렬
- 내림차순 하는 법 -> sort_values(col1,ascending=false,True)
sort_values() : 컬럼별로 정렬
ascending= 을 이용하여 오름/내림차순 확인
여러 개의 컬럼을 이용하는 경우에는 []를 이용하여 순위 순으로 컬럼을 작성하여 정렬
여러 개의 컬럼별로 정렬하는 경우에는 오름/내림차순을 따로 적용시킬 수 있음 (순위 순으로 적용)
새로운 컬럼 생성 <- 파생변수 여러 개를 생성
새로운 컬럼에 파생변수를 넣는데 남성인 경우 0, 여성은 경우는 1을 넣음(for,if문 활용)
value_counts()를 이용하여 해당컬럼에 어떤 값이 몇 개나 있는지 확인
성별의 갯수와 동일하게 나오면 성공적 수행
새로운 파생 변수 생성 -> 요금 * 100한 값들을 이용
numpy의 np.where함수를 이용->조건에 맞는 인덱스를 호출 함수
np.where(tt['fare']>=10(조건),'H'(조건 부합시),'L'(조건 부적합시)를 이용하여 fare_cls라는 새로운 컬럼 값을 채움
위의 fare이 100이상인 경우에 나온 88번째 인덱스를 찾아보면
fare 값이 263 >= 100이고,
동일하게 lamda를 이용해서도 만들 수 있다
lambda x : x['fare_100']/x['fare'] : 위의 fare에 100을 곱한것 = fare_100인데 나누기 100하면 fare 나옴
group by
- 집계하는 것
- 기준 컬럼을 가지고 통계치를 보고 싶은 컬럼의 값을 볼 수 있다
- Groupby 하나의 기준 컬럼의 그룹을 만든다.
print(i) : class의 분류 기준이 나온다 -> First,Second,Third
print(j.head(10)) -> 각 분류 기준에 따라 나누어진 값의 상위 10개 인덱스 표현
- get_group(내가 원하는 그룹)
- groupby 그룹을 2개 이상하는 경우 []이용
class와 embarked를 기준 컬럼으로 놓고 분류
print(i) : class와 embarked가 동시에 충족하는 것을 기준으로 정렬 -> 예) (First, C) (Second,C)(Third, s) ...
print(j.head(10)) : 각 기준 컬럼을 기준으로 나누어진 값들의 상위 10개 인덱스 표현
.mean()
.sum()
.std()
이용하면 해당 컬럼의 평균,합,표준편차등을 알 수 있다
- groupby agg 함수릃 넣어서 통계치를 살펴본다
- groupby 그룹을 묶고 내가 원하는 통계치들을 정리해서 볼 수 있다
- tt.groupby('그룹할 컬럼').agg('기준컬럼1','기준컬럼 볼 통계치'),...)
tt.groupby('그룹할 컬럼').agg('기준컬럼1','기준컬럼 볼 통계치'),...)
tt.groupby('class').agg(fare_sum = ('fare', 'sum'))
class 컬럼으로 그룹핑하여 기준컬럼을 fare로 놓고 각 합의 값을 구하는 것
여러가지 경우를 ,를 포함하여 작성할 수 있고 다양한 문제를 직접 만들어서 풀어보는 것을 추천
1개의 기준컬럼에 대해 2개 이상의 통계치를 보는 경우에는 {}를 이용하여 작성한다
데이터 병합
- concat, merge
- concat : 덩어리와 덩어리가 합쳐진다. df1, df2 합쳐진다. 날 것 그대로
- 행으로 붙이는 것 df1+df2
- 열로 붙이는 것
- df1
- +
- df2
- merge : join 형태, left, outer, right join 개념
데이터플레임을 만들고 pandas의 pd.merge((왼쪽컬럼(기준), 오른쪽컬럼(그다음), how='병합방법', on='공통기준컬럼')
test1을 기준으로 test2를 넣고 inner join으로 조인하여 학회원번호를 공통기준컬럼으로 사용
pd.concat(axis=1,0에 따라 달라진다. 1은 인덱스별 붙여짐/0은 컬럼별로 붙여짐)
디폴트값은 axis=0으로 된다 / axis=1은 옆으로 걔속 데이터테이블이 붙음 / axis=0은 위아래로 데이터테이블이 붙음
(같은 데이터테이블이라도 계속해서 붙을 수 있음)
- value_counts()
- 변수들의 카운팅을 진행하는 문법
- tt.컬럼.value_counts()
- value_counts(nomalize=True, False) 카운팅 총섬1 나누는 것
- value_counts(ascending=True, False) 카운트 숫자를 기준으로 내림/오름차순
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) 2회차]_Pandas 기초 문법 정리 (0) | 2024.03.15 |