인프런 커뮤니티 질문&답변

jmin0205님의 프로필 이미지
jmin0205

작성한 질문수

금융데이터 분석을 위한 판다스 활용법

About Nan (DataFrame에서 Nan값에 해당되는 날짜를 추출하는 방법은?)

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

작성

·

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

Suit & Coffee님의 프로필 이미지
Suit & Coffee
지식공유자

안녕하세요 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집합을 만들어 데이터프레임에 적용하면 해당 값을 뽑아낼 수 있다는 것을 말씀드리기 위해 강의에서 설명드린 부분입니다

 

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

 

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

 

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

 

jmin0205님의 프로필 이미지
jmin0205

작성한 질문수

질문하기