• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

sns.distplot() 관련

20.06.15 15:10 작성 조회수 313

1

sns.distplot(df_last["평당분양가격"])

를 처음 실행 하였을때

NaN값들을 처리하지 않았는데

value error가 뜨지 않았습니다.

그래프가 봐로 표현되었는데 혹시 뭐가 문제가 있는 건가요?

답변 7

·

답변을 작성해보세요.

1

nealzs님의 프로필

nealzs

질문자

2020.06.15

그럼 개인적인 궁금증이지만,

distplot()으로 그래프를 그렸을때 제 경우 NaN을 제외하고 그린 분포인지

포함하고 그려진 분포인지 궁금한데.. 혹시 어떻게 하면 제가 확인 할 수 있을까요?

만약에 결측치가 포함된 상태로 분포를 표현한거라면 분포가 달라지는지 궁금합니다... ㅜㅜ

계속된 질문 죄송합니다!!!ㅜㅜ

1

안녕하세요.

좀 더 확인해 봐야 될것 같은데 사용하고 있는 seaborn 버전에서 결측치가 있어도 distplot이 그려지는 것을 지원하는 것으로 보여집니다.

기존에 제가 사용했던 버전에서는 결측치가 있다면 그래프가 그려지지 않았는데 버전에 따라 다를 수도 있습니다.

보통 결측치가 있으면 오류가 나고 아예 그래프가 그려지지 않는데 이런 기능들이 사용하고 있는 라이브러리의 버전에 따라 다르기도 합니다.

결측치가 있는데 그래프가 그려졌다고 해서 문제가 되지는 않을거 같습니다.

같은 그래프를 kdeplot, violinplot 으로도 그려보실 수가 있어요. violinplot 은 kdeplot를 마주보게 그린 그래프인데 동일하게 그려진다면 문제가 없을 것 같습니다.

1

nealzs님의 프로필

nealzs

질문자

2020.06.15

is.null을 돌렸을 떄 true가 있다면 그래프가 그려지면 안 되는 것 아닌가해서용

현재 null인 셀들이 378개가 있는 것 같은데 위의 distplot()이 그려지는게 맞는 건가요~?

1

nealzs님의 프로필

nealzs

질문자

2020.06.15

df_last["평당분양가격"].notnull().sum() 돌리면

3957이 리턴됩니다.

그럼 결측치가 없는 것 같은데

강의 보면서 그대로 실행하여 결측치 처리를 한적이 없는것 같은데 

그려지네용...

0

df_last["평당분양가격"].describe() 를 해보시면 각 값에 대한 사분위수, 최소, 최대값을 보실 수 있습니다.

최소, 최대값이 그래프에 그려진 범위와 맞는지 확인해 보시고요.

또, 중앙값, 평균값 등이 그래프와 비교해 봤을 때 맞는지 함께 보시는것도 좋을거 같아요.

그리고 다음 챕터에서 나오는 내용인데 다음의 방법으로 그래프에 특정 값을 표시해 볼 수 있습니다.

아래와 같은 코드로요.

plt.axvline(df["컬럼명"].mean(), linestyle=":", color="r")

plt.axvline(df["컬럼명"].median(), linestyle="--")

그래프에 평균이나 중앙값 등을 함께 표시해 보는 방법도 있고요.

위에서 추천한 kdeplot, violinplot 도 같이 그려보시는게 좋습니다

그리고 boxplot 은 1,2,3사분위수를 가장 잘 표현합니다.

boxplot 으로 같은 내용을 그려보시는 것도 좋을거 같아요.

0

전체 데이터 갯수가 3957개 인가요?

notnull 대신 isnull로 다시 세어보시겠어요?

df_last["평당분양가격"].isnull().sum() 으로 결측치의 수를 확인해 보세요.

결측치가 없다면 정상적으로 그려지는 것으로 보여집니다!

0

안녕하세요.

df_last["평당분양가격"].notnull().sum() 으로 결측치가 있는지 확인해 보세요.

아마도 제대로 그려졌다면 결측치가 없을 것으로 보여집니다.