광고 매크로 없는 청정한 블로그를 위해 노력중입니다. 근데 나만 노력하는 것 같음… ㅡㅡ
반응형

보통 판다스 데이터프레임 불러와서 지지고 볶고 뭐 해요? 그래프 그리죠. 표로 정리해서 보여주는것보다 그래프 딱 만들어서 도표 딱 보여주면 기깔나쟎아요? 그겁니다. 그리고 우리가 제일 많이 쓰는 맷플롭이나 씨본(+Plotly)에서도 폴라스를 받아줄지 궁금해서 해봤습니다.

 

이번에 써 볼 데이터프레임은 파일 불러온거 하나(켐플) 있고, 직접 만든거 하나 있습니다.


import polars as pl
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px # 프로젝트 이런거 아니니까 걍 얘 부를게여

위에서부터 순서대로 폴라스, Matplotlib, 씨본, Plotly임다. 불러오십쇼. pyarrow는 불러올 필요 없고 설치만 하면 됨.

 

# 피보나치 수열
dict = {
    'A':[1, 1, 2, 3, 5, 8, 13, 21, 34, 55],
    'B':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}

# 을 데이터프레임으로 
df = pl.DataFrame(dict)

그리고 직접 만든 데이터는 이겁니다. 피보나치 수열임.


Matplotlib

둘다 잘 됨. 진짜로 그게 답니다. Null이 있으면 걍 이게 뭐여 패스 하는듯.

 

위가 피보나치, 아래가 산점도다. ...저기 0이 널 아니예요? 나도 그런 줄 알고 확인해봤는데 그냥 수소결합을 안 하는 놈임.

 

Seaborn

근데 왜 씨본은 색이 다르냐면 쟤는 Hue 옵션을 줬음. 쟤만 줬어요.

 

sns.scatterplot(load_df.to_pandas(), x = 'HBA', y = 'HBD')
plt.show()

산점도는 그리다가 결측값때문에 에러가 났는데, 판다스는 NaN(날짜는 NaT)이지만 폴라스는 null이잖아요? 이걸 결측값 처리 안 하고 걍 주면 씨본이 이게 뭐시여 하고 오류를 토하니까 to_pandas()를 준 겁니다. 근데 저게 pyarrow가 설치되어있어야 가능하니까 또 설치한건데… 여러분들이 EDA를 할 거라면 안 쓸 칼럼은 날릴거고, 그게 아니어도 결측값을 어떻게든 채울거잖아요? 결측값 땜질만 적절하게 하면 오류는 볼 일이 없습니다.

 

Plotly

쟤는 왜 캡쳐했나요? 플롯틀리는 그래프 복사가 안됩니다. 쟤 사이즈 왜저래요? 사이즈가 불만이면 그릴때 조절해야 합니다. 조절 안하면 저렇게 넙대대한 놈 나옵니다.

 

아무튼 둘 다 오류 없이 잘 나온 건 맞다.

반응형