일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- TiL
- 멋쟁이사자처럼
- 멋재이사자처럼
- pyhton
- DP
- parklab
- 멋쟁이사자처럼멋쟁이사자처럼
- 마이온컴퍼니
- Join
- seaborn
- GNN
- intern10
- Python
- 마이온
- 파이썬
- 멋사
- SQL
- folium
- likelionlikelion
- Plotly
- DFS
- GIS
- ux·ui디자인
- likelion
- 프로젝트
- 알고리즘
- 그리디
- BFS
- 시각화
- 인턴10
- Today
- Total
지금은마라톤중
멋사 AI스쿨 TIL - (14) 본문
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 |