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

miji.lee님의 프로필 이미지
miji.lee

작성한 질문수

처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part2]

pandas 라이브러리로 실제 데이터 전처리하기4

파일 병합 질문 드립니다

작성

·

229

0

강사님 안녕하세요.

마지막에 파일 병합하는 코드 질문 드립니다. (강의 9:15)

    first_doc = True

    for file in csv_list:

        doc = create_dateframe(file)

        if first_doc:

            final_doc, first_doc = doc, False

        else:

            final_doc = pd.merge(final_doc, doc, how='outer', left_index=True, right_index=True)

"first_doc=True면 첫 프레임을 지금 프레임으로 만들고, first_doc이 채워졌으니 False로 만든다. 

이후 final_doc이 기본 프레임이 된다."고 말씀하셨는데 이해가 안되서요. 

아니  if first_doc: final_doc, first_doc = doc, False 의 문법 자체를 모르겠습니다 ㅠㅠ 이건 어떤 원리로 작성된 코드인지요?

답변 2

0

def generate_dateframe_by_path(PATH):

    file_list, csv_list = os.listdir(PATH), list()   

    first_doc = True

    for file in file_list:

        if file.split(".")[-1] == 'csv':  

            csv_list.append(file)

    csv_list.sort()  #sort() 기본 오름차순정렬

    

    for file in csv_list:      csv_list의 file들이 하나씩 차례로 들어올거고

        doc = create_dateframe(file)  그 파일들을 df으로 하나씩 만들고

        if first_doc:    처음들어온 doc이라면 우선 if구문이 실행될건데 

            final_doc, first_doc = doc, False   위에서 first_doc =True로 지정했던 상태로, fisrt_doc = False로 바꾸고, 이번에 들어온 doc을 final_doc에 저장해라

        else: 거고 그리고 다음 파일이 들어올 땐 fisrt_doc이 False이기 때문에 else문이 실행되고

            final_doc = pd.merge(final_doc, doc, how='outer', left_index=True, right_index=True)

         이번에 들어온 doc과 이전의 파일들이 저장된 final_doc을 합쳐서 새로운 final_doc을 생성

 

if 사과면:

  먹는다.

else: 

  먹지 않는다.

 

이런식으로 if else문을 설명하시더라구요. 초보입장에서 다른 초보분들한테 혹시 도움이 되지 않을까 해서 해석해봤습니다 ㅎ..ㅎ

 

0

안녕하세요.  제가 다음과 같이 작성을 한 것인지 의문이 조금 들어요.

여하튼 다음과 같이 쓰면, 앞에 선언된 것이 = 다음에 앞에 선언된 것으로 대입되고, 두번째 선언된 것이, = 다음에 두번째의 값에 대입이 됩니다. 이 부분은 영상에서 나올때마다 설명을 드리고 있어서, 영상을 다시 보셔도 좋을 것 같습니다.

final_doc, first_doc = doc, False

감사합니다.

miji.lee님의 프로필 이미지
miji.lee

작성한 질문수

질문하기