#데이터 재구조화------ melt(), pivot_table(), stack(), unstack()
import seaborn as sns
df = sns.load_dataset('penguins')
print(df.head())
#melt():
id변수를 기준으로 원본 데이터프레임의 열 이름들을 variable 열에 넣고, 각 열에 있던 데이터는 value 열에 넣음.
print(df.melt(id_vars=['species', 'island', 'bill_length_mm']).head(10))
#id_vars에 입력한 열은 식별자 변수가 되고 나머지는 variable열에 하나씩 들어감.
#pivot_table():
인덱스, 칼럼, 밸류, aggfunc(데이터 집계 함수)를 입력해야 한다.
import seaborn as sns
df = sns.load_dataset('penguins')
df_pivot_1 = df.pivot_table(index='species',
columns='island',
values='bill_length_mm',
aggfunc=['mean', 'count']) #복수 조건은 리스트로 입력.
print(df_pivot_1) #펭귄 데이터의 species와 island별 bill_length의 평균값, 개체 수를 나타낸 표, 그 지역에 해당 종이 1마리도 안 살면 NaN으로 표시.
#인덱스, 칼럼, 밸류, aggfunc(데이터 집계 함수)는 각각 하나가 아닌 여러개를 입력할 수 있다.
#stack(): 열 인덱스를 행 인덱스로 바꿈.
#unstack(): 행 인덱스를 열 인덱스로 바꿈.
import seaborn as sns
df = sns.load_dataset('penguins')
df_pivot_4 = df.pivot_table(index=['species', 'sex'],
columns= 'island',
values='bill_length_mm',
aggfunc='mean')
print(df_pivot_4)
print(df_pivot_4.stack().to_frame()) #투프레임은 시리즈를 데이터프레임 형태로 변경하고 싶을 때 쓴다. 생략가능
print(df_pivot_4.unstack()) #행 인덱스인 female, male이 열 인덱스로 변경됨. species는 현재 기본인덱스라서 변경되지 않음.
'파이썬 입문 > 데이터 분석 기초' 카테고리의 다른 글
파이썬 데이터시각화 연습(1) - matplotlib 패키지 이용 (0) | 2023.12.17 |
---|---|
파이썬 데이터 분석(6) 데이터프레임에 함수 적용하기 (1) | 2023.12.05 |
파이썬 데이터 분석(4) 데이터프레임 합치기 (1) | 2023.12.05 |
파이썬 데이터 분석(3) 인덱스 (1) | 2023.12.05 |
파이썬 데이터 분석(2) 데이터 프레임 Data Frame (1) | 2023.12.05 |