• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

DataFrame 강의 중 About NaN 질문입니다.

23.07.18 23:06 작성 조회수 123

0

안녕하세요, 수업 잘 듣고 있습니다. 감사합니다.

강의 중 DataFrame 값 중 NaN인 값의 날짜를 추출하는 방법이 있었습니다.

이 부분이 잘 이해가 안가서 질문을 드립니다.

df_samsung_close.isna() 를 하게 되면, 삼성전자의 종가값이 있는 날은 False, 없는 날은 True이고 인덱스가 날짜인 데이터프레임이 조회됩니다.

따라서, df_samsung_close.isna().values를 하면 True와 False로 이루어진 numpy array가 출력됩니다.

이때 선생님께서는

df_samsung_close[df_samsung_close.isna().values].index를 이용해서 답을 찾으셨는데,

일단 데이터프레임[np array]가 의미하는 바를 모르겠습니다.

데이터프레임[np.array(true, false,...)] 했더니 true인 값만이 조회가 되는 syntax가 잘 이해가 가지 않아서요.

설명해주실 수 있나요?

답변 1

답변을 작성해보세요.

0

안녕하세요 jmin02050님

답변을 늦게드려 죄송합니다. 제가 질문이 온 줄 몰라 확인을 못했습니다

우선적으로는 '데이터프레임[np.array(true, false,...)]'방식은 데이터프레임의 행 중에서 True인 값만 추출하는 형식입니다.

해당 부분에서 Numpy Array 상관없이 리스트로 해도 같은 결과가 나옵니다.

df[List(True, Fasle, Ture, ...)] -> True값만 추출되는 형식이죠.

그래서 결론적으로 데이터프레임의 값을 추출하는 방법 중 하나는 데이터프레임과 같은 shape의 True, False인 불린형식으로 되어있는 집합(Array, List ....)을 만든 후 데이터프레임에 적용해서 추출하는 방식이 있습니다.

jmin02050님께서 말씀해주신 부분을 조금 더 원론적으로 설명드리고 싶지만 제가 아직 부족해서 어떤식으로 설명드려야할지 고민이 있습니다.

 

좀 더 자세히 어떤식으로 작동하는 syntax인지는 제가 더 고민해보겠습니다.

결론적으로 데이터프레임에서 자기가 원하는 값을 추출할때, 특히나 내가 원하는 행을 True 그리고 원하지 않는 행을 False로 표현할 수 있다면, True와 False집합을 만들어 데이터프레임에 적용하면 해당 값을 뽑아낼 수 있다는 것을 말씀드리기 위해 강의에서 설명드린 부분입니다

 

혹시 해당 답변을 읽고 이해가 안되시는 부분이 있다면 계속 말씀해주시기 바랍니다

 

답변이 늦어 정말 죄송합니다

 

강의를 수강해주셔서 정말 감사합니다