TIL/멋사_AI스쿨_TIL

221005 AI스쿨 TIL Plotly

2022. 10. 5. 22:57

EDA

 

  • map: 시리즈만 가능, df[”column1”].map(함수 or dictionary)
  • apply: 시리즈와 df둘 다 가능, df.apply(함수)
  • applymap df만 가능, df.applymap(함수)

lamda함수: 이름 없는 함수

간단한 기능은 함수를 만들지 않고, lamda 활용

간단한 전처리에 유용

# map과 lamda 연습
def find_year(x):
    return x[:4]

#df1["생산연도"] = df1["생산일"].map(lamda x : x[:4])
df1["생산연도"] = df1["생산일"].map(find_year)
df1

tqdm

오래 걸리는 작업 진행 상황을 파악하기 위해 사용

from tqdm.notebook import tqdm

tqdm.pandas()

map을 .progress_map() 형태로 활용

 

pd.concat()

- 이때 map을 한 결과는 series이기 때문에 리스트로 변형시켜준 후에 concat해야함

  • 변수.tolist()
  • pd.concat(변수)

pd.merge()

key가 있는 경우 merge

- How의 default는 inner

- inner은 양쪽의 개수가 똑같을 때 활용

df_top10.merge(df_krx, left_on="종목별", right_on="Name",how="left")[['Name','Symbol']]

https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html

 

How to combine data from multiple tables? — pandas 1.5.0 documentation

For this tutorial, air quality data about Particulate matter less than 2.5 micrometers is used, made available by OpenAQ and downloaded using the py-openaq package. The air_quality_pm25_long.csv data set provides \(PM_{25}\) values for the measurement stat

pandas.pydata.org

 

리스트컴프리헨션

- 자주 사용됨되니 기본 형태 알아두기

[x for x in range(10)]

https://wikidocs.net/22805

 

pandas 연산

df_norm = (df / df.iloc[0]) -1

시각화 방법 두 가지

# matplotlib API 
plt.plot(df_norm) plt.show()

# pandas API
df_norm.plot(figsize =(14,8))

 

pd.cut() 같은 길이로 나누기: 절대 평가

pd.qcut() 같은 개수로 나누기: 상대평가 - RFM분석 (고객수, 금액대별 인원)

Plotly

Plotly 는?

  • 파이썬의 대표적인 인터랙티브 시각화 도구
  • Plotly Python Graphing Library | Python | Plotly
# 라이브러리 로드
import plotly.express as px
import pandas as pd

수익률을 막대그래프로 그립니다. 아래 3가지의 결과물은 동일하다

px.bar(df_1, x=df_1.index, y='GOOG')

px.bar(df_1, y='GOOG')

px.bar(df_1["GOOG"])

주요 그래프 사용법

scatter([data_frame, x, y, color, symbol, …])
line([data_frame, x, y, line_group, color, …])
area([data_frame, x, y, line_group, color, …])
bar([data_frame, x, y, color, facet_row, …])
timeline([data_frame, x_start, x_end, y, …])
violin([data_frame, x, y, color, facet_row, …])
box([data_frame, x, y, color, facet_row, …])
strip([data_frame, x, y, color, facet_row, …])
histogram([data_frame, x, y, color, …])
pie([data_frame, names, values, color, …])
treemap([data_frame, names, values, …])

라인그래프

서브 플롯

# px.area 로 수익률 분포를 그립니다.
# facet_col 을 통해 서브플롯을 그릴 수 있습니다.
px.area(df_1, facet_col="company",facet_col_wrap=2)

시간 표현 hover_date

# px.line 으로 전체 데이터의 수익률을 구합니다.
# hover_data={"date": "|%Y-%m-%d"} 로 시간을 표현할 수 있습니다.
px.line(df, x="date", y="GOOG", hover_data={"date":"|%Y-%m-%d"})

슬라이더 사용

fig = px.line(df_1["GOOG"])
fig.update_xaxes(rangeslider_visible=True)
#인터렉티브 슬라이더, 데이터가 많으면 속도가 느려져서 matplotlib을 더 많이쓴다
#개선하는 방법? 샘플링해서 그리기, 대표값을 표시해야 한다면, 그래프에서 계산하지 않고 미리 계산해서 시각화하기

 

캔들스틱 차트 Candle stick Chart

import plotly.graph_objects as go
# go.Candlestick 을 그립니다.
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
import plotly.graph_objects as go

import pandas as pd
from datetime import datetime

fig = go.Figure(data=[go.Candlestick(x=df['Date'],
                open=df['AAPL.Open'],
                high=df['AAPL.High'],
                low=df['AAPL.Low'],
                close=df['AAPL.Close'])])

fig.show()

https://plotly.com/python/candlestick-charts/

 

Candlestick

Detailed examples of Candlestick Charts including changing color, size, log axes, and more in Python.

plotly.com

 

OHLC Chart

# go.Ohlc를 그립니다.
fig = go.Figure(data=[go.Ohlc(x=df['Date'],
                open=df['AAPL.Open'],
                high=df['AAPL.High'],
                low=df['AAPL.Low'],
                close=df['AAPL.Close'])])

fig.show()

https://plotly.com/python/candlestick-charts/

 

Candlestick

Detailed examples of Candlestick Charts including changing color, size, log axes, and more in Python.

plotly.com

 

  • EDA
  • Plotly
  • Plotly 는?
'TIL/멋사_AI스쿨_TIL' 카테고리의 다른 글
  • 221011 AI스쿨 TIL Tidy data
  • 221006 AI스쿨 TIL 코로나 확진자 수 분석
  • 221004 AI스쿨 TIL 웹스크래핑
  • 220929 AI스쿨 TIL API
둥둥런
둥둥런
대학원생의 UX, 데이터분석, 개발 공부 기록장📁
둥둥런
Done is better than Perfect
둥둥런
전체
오늘
어제

공지사항

  • About me
  • 분류 전체보기
    • TIL
      • 멋사_AI스쿨_TIL
    • 회고
      • 프로젝트 회고
    • STUDY
      • SQL
      • Python
      • Pandas
      • 태블로
      • 통계
      • 머신러닝 | 딥러닝
      • ETC
      • 그로스마케팅 | 광고
      • UX
    • BOOK
    • EVENT

인기 글

블로그 메뉴

  • 태그
  • 관리
hELLO · Designed By 정상우.
둥둥런
221005 AI스쿨 TIL Plotly
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.