728x90
반응형
※ 아래 내용은 인프런 강의 공공데이터로 파이썬 데이터 분석 시작하기 강의로 부터 작성된 코드 요약본 입니다.
※ 아래 과정은 지난 포스팅에서 정리한 groupby, pivot_table을 바탕으로 작성되었습니다.
1. python에서 그래프를 위한 한글폰트 설정하기
# font_name 자리에는 사용자의 폰트명을 입력
import matplotlib.pyplot as plt
plt.rc("font", family = "font_name")
2. groupby로 연산된 데이터로 plot 그리기
g = df.groupby(["col1"])["col2"].mean()
g.plot()
- groupby 한 결과를 'g'라는 변수에 저장한 후 plot()함수를 입력하면 자동으로 플롯을 그린다.
- plot의 종류는 plot 함수에 kind옵션에서 지정할 수 있음
g.plot(kind = "bar")
- 이 외에도 다양한 옵션이 있음 : g.plot 입력후 Shift + Tab을 누르면 plot 함수에서 사용할 수 있는 다양한 옵션을 확인할 수 있음
- 막대그래프를 그리는 다른 방법
g.plot.bar()
plot 함수에 kind 옵션을 "bar"로 지정한 그래프와 동일한 그래프를 출력한다.
rot, figsize 옵션
위에서 출력한 그래프와 같이 가로축의 글씨를 회전할 경우 rot옵션에 회전할 각도를 입력한다. 또한 그래프의 사이즈를 조정할 경우 figsize 옵션에 (n,m) 형태로 조정할 수 있다.
# g.plot.bar(rot = k, figsize = (n,m))
g.plot.bar(rot = 0, figsize = (10,3))
- 막대 그래프를 크기가 큰 순서대로 정렬하고자 하는 경우, groupby 하는 과정에서 sort_values(ascending = False) 함수로 정렬할 수 있다.
# 내림차순으로 정렬
g = df.groupby(["col1"])["col2"].mean().sort_values(ascending = False)
g.plot.bar(rot=0, figsize = (10,3))
728x90
반응형
pivot_table을 이용한 Boxplot
df.pivot_table(index = "col1", values = "col2").plot.box()
- 여기서 values를 세분화 하여 보기 위해 columns를 추가할 수 있다.
- 예시
- 위의 pivot_table로 boxplot을 그리면 연도별로 boxplot이 그려지는 것이 아니기 때문에 우리가 원하는 연간 평당분양가격의 변화를 파악할 수 없다. 따라서 columns에 열 인덱스로 들어갈 키 열 또는 키 열의 리스트를 추가한다. 여기에 "월" 정보를 추가하면 아래와 같은 pivot_table을 바탕으로 boxplot을 그릴 수 있다.
df.pivot_table(index = "연도", columns = "월", values = "평당분양가격")
rot, figsize 옵션
g3 = df_last.pivot_table(index = "col1", columns = ["col2", "col3"], values = "col4")
g3.plot.box(rot = 30, figsize = (15,3))
olumns 값은 2개 이상이 될 수도 있다. 또한 위에서 봤던 barplot과 마찬가지로 가로축 이름의 회전각과 plot사이즈를 지정할 수 있다.
groupby와 pivot_table의 차이점?
pivot_table은 groupby 명령처럼 그룹분석을 하지만 최종적으로는 pivot 명령처럼 피봇테이블을 만든다. 즉
groupby 명령의 결과에 unstack 을 자동 적용하여 2차원적인 형태로 변형한다
# 두 명령은 같은 결과를 출력한다 df.groupby(["col1"])["col2"].mean().unstack() df.pivot_table(index = "col1", values = "col2", aggfunc = mean)
728x90
반응형
'Study > Python' 카테고리의 다른 글
[Python]pandas를 이용한 2022 kaggle survey 분석 및 시각화 - 1 (0) | 2023.04.04 |
---|---|
[python] 지역 경계 데이터 전처리를 위한 Geopandas 설치하기 (0) | 2022.06.09 |
[Python] 데이터 로드 및 전처리 (0) | 2021.10.15 |
[Python]Pandas basic 파이썬 판다스 기초 : map, applymap 함수 활용하기 (0) | 2021.08.18 |
[Python]Pandas basic 파이썬 판다스 기초 : apply 활용하기 (0) | 2021.08.18 |