작성
·
190
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집합을 만들어 데이터프레임에 적용하면 해당 값을 뽑아낼 수 있다는 것을 말씀드리기 위해 강의에서 설명드린 부분입니다
혹시 해당 답변을 읽고 이해가 안되시는 부분이 있다면 계속 말씀해주시기 바랍니다
답변이 늦어 정말 죄송합니다
강의를 수강해주셔서 정말 감사합니다