지금은마라톤중

멋사 AI스쿨 TIL - (14) 본문

멋쟁이사자처럼/Python

멋사 AI스쿨 TIL - (14)

달리는중 2023. 2. 7. 17:12

20203.02.07

 

🙋🏻‍♂️질문 : sns.heatmap(), df.style.background_gradient() => 두 가지의 차이점?
heatmap은 전체를 기준으로 확인할 때, background_gradient는 axis를 조절하여 행 또는 열 기준으로도 확인df.style.background_gradient() => 성질이 다른 각 변수를 각각 비교하고자 할 때 적합합니다. 예) 변수에 체중, 키, BMI지수, 콜레스테롤수치 처럼 스케일값이 다르고 성질이 다른 값의 스케일을 비교하고자 할 때 적합합니다.

 

🙋🏻‍♂️질문 : 왜 groupby 로 할 수 있는 것은 pivot_table로도 대부분 구현이 가능할까요?
pivot_table이 groupby의 하이레벨 인터페이스 입니다
자유도가 높은 순서 : groupby > pivot_table > crosstab

 

 

● 데이터 분포 확인

- 수치 데이터를 분석할 때 가장 먼저 히스토그램을 봅니다.  

- pairplot -> 짝을 지어 볼 수 있음. 상관관계 파악

- tidy data로 만들어 분석하기

- .copy()로 깊은 복사를 하게 되면 원본에 영향을 주지 않음

- .transpose(), .T

- 막대그래프 -> 대표값만 표시

- boxplot -> 사분위수 표시. 강건(robust)하여 내부 값이 바뀌어도 plot의 형태가 변하지 않을 수 있음

- violinplot -> 밀도를 표시하는 plot으로 카테고리값에 따른 각 분포의 실제 데이터 또는 전체 형상을 보여준다

 

🙋🏻‍♂️질문 : KOSIS 는 raw 데이터를 제공하지 않습니다. 어떤 데이터일까요?

원시(날 것)의 데이터가 아닌 집계되어 있는 데이터

 

🙋🏻‍♂️질문 : 회원가입 데이터에 정규표현식을 사용한다면 어디에 사용할까요?

아이디, 비밀번호, 이메일, 전화번호, 우편번호의 자릿수

 

 nlargerst, nsmallest

- sort_values()와 head(n)를 합친 것

- nlargerst :sort_values(ascending = False).head(n)

 

- nsmallest :sort_values(ascending = True).head(n)

 

 

 정규표현식

  • [ ] : 일치시킬 문자 세트의 패턴
  • [가나다] : 가 or 나 or 다 중에 하나를 포함하고 있는지
  • [가-힣] : 한글 가부터 힣까의 문자 중 하나를 포함하고 있는지
  • [0-9] : 0~9까지의 숫자 중 하나를 포함하고 있는지
  • [^0-9] : 숫자를 포함하고 있지 않음
  • [^가-힣] : 한글이 포함되어 있지 않음
  • [가-힣+] : 한글이 하나 이상 포함되는지

 

🙋🏻‍♂️질문 : 파이썬의 정규표현식 표준 라이브러리는 어떻게 부를까요?
regular expression => regexp

 

 

# seaborn => 막대그래프에 대한 연산을 barplot으로 그려볼 수 있습니다.

# histogram => 수치, 범주형을 모두 표현할 수 있습니다.

# seaborn, pandas 에서는 histogram 은 수치데이터만 제공합니다.

 

 

🙋🏻‍♂️질문 : plotly histogram의 연산 기능은 무엇일까요? 이 그래프가 시각화 한 것은 어떤 연산일까요?

- count 입니다!

 

 

🙋🏻‍♂️질문 : histfunc을 지정하지 않은 경우랑 같은 그래프가 나오는 이유가 궁금합니다.

범주형 일 때는 기본값이 =>count 수치형 일 때는 기본값이
=>sum . # histfunc: str (default 'count' if no arguments are provided, else 'sum') # One of 'count', 'sum', 'avg', 'min', or 'max'.Function used # to aggregate values for summarization (note: can be normalized with # histnorm). 
The arguments to this function are the values of y(x) # if orientation is 'v'('h').

 

 plotly => 일별시세, KOSIS

* 일별 시세 : 연속된 수치 데이터, 연속된 기간별로 시각화, 종목별 서브플롯 그리는 실습, px.line, bar, area ...

* KOSIS : 범주형 데이터에 대한 시각화, 국가권역별로 수입수출액 비교, px.histogram,

* 막대그래프 : px.bar(연산지원 X), px.histogram(histfunc으로 연산 지원)

 

 

# plotly express histogram 으로  x="달러", y="국가권역" 합계 구하기
# color="항목", barmode="group"
px.histogram(df_country, x= "달러", y = "국가권역", color="항목", barmode = "group", histfunc = "sum").update_yaxes(categoryorder = "total ascending")

 

 

# plotly express histogram 으로  x="달러"
# color="항목", facet_row="산업

px.histogram(df_country, x= "달러", y = "국가권역", color="항목", facet_row = "산업", histfunc = "sum").update_yaxes(categoryorder = "total ascending")

 

🙋🏻‍♂️질문 : px.historgram 에 정렬기능이 잘 안 보입니다. 어떻게 정렬해서 시각화 하면 좋을까요?

.update_yaxes(categoryorder='total ascending') 이 명령어를 통해 정렬할 수는 있지만, 실험 결과 facet은 정렬이 안됩니다!
histfunc => 단점은 계산 시간이 오래 걸립니다. 그래서 계산을 판다스로 하고 px.bar() 로 시각화 하는 것을 추천합니다.
facet => pandas, seaborn, plotly, 다 마찬가지로 정렬이 안 되는 문제가 있습니다. 이럴 때는 직접 서브플롯을 시각화 하는 것을 추천합니다

 

🙋🏻‍♂️질문 : pandas, plotly, seaborn이 어느 기반인지 다시 설명해주실 수 있나요 ?

matplotlib => pandas, seaborn 
javascript => plotly

 

# seaborn catplot 으로 시각화 data=df_top20, x="연", y="달러", 
# hue="항목", col="국가권역", estimator=np.sum, kind="point"
sns.catplot(data = df_world, x="연", y="달러",hue="항목", col="국가권역",
            col_wrap=4,estimator=np.sum, kind="point", errorbar = None, palette = "summer")

 

 

🙋🏻‍♂️질문 : FacetGrid 와 PairGrid 의 차이점?
FacetGrid => 하나의 범주형 변수를 쪼개고 나눠서 시각화(예. relplot, displot, catplot) 
PairGrid => 여러 변수를 비교해서  서브플롯 시각화 (예. pairplot)

 

🙋🏻‍♂️질문 : 리스트와 튜플의 차이점, 튜플이 메모리를 덜 사용하는 이유

불러오실 때, []가 아니라, ()로 해주시면 메모리를 덜 사용하실 수도 있습니다..! (제너레이터 입니다.!)
추가로,
%whos 명령어로 변수명 확인해서, del 변수명 사용 안하는 변수를 삭제해주시면, 메모리 사용량이 좀 더 여유로워질 수 있습니다.
() => 제너레이터 컴프리헨션입니다! 튜플과 같은 모양입니다! 
리스트는 필요한 데이터 용량을 모두 확보한 후 로드를 시작하지만, 제너레이터는 순회 1번에 필요한 데이터 용량만 확보해서 작동합니다. 즉, 리스트는 17개 데이터프레임 용량 모두를 잡아 먹지만, 제너레이터는 1개씩의 데이터프레임 용량만 잡아 먹습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'멋쟁이사자처럼 > Python' 카테고리의 다른 글

멋사 AI스쿨 TIL - (16)  (0) 2023.02.28
멋사 AI스쿨 TIL - (15)  (0) 2023.02.09
멋사 AI스쿨 TIL - (13)  (0) 2023.02.06
멋사 AI스쿨 TIL - (12)  (1) 2023.02.01
멋사 AI스쿨 TIL - (11)  (0) 2023.01.31
Comments