두 데이터프레임 합치기

조회수 570회
rekfs_skd_l[5]
       STD    STA   TYP
FLT                    
171  08:30  11:30  B738
172  12:40  17:40  B738
172  18:20  19:35  B738
211  08:40  10:25  B738
212  11:25  13:20  B738
..     ...    ...   ...
594  17:55  18:45  B738
595  19:20  20:25  B738
761  22:00  17:05  B772
791  04:20  08:20   J7Q
792  12:40  20:10   J7Q
[118 rows x 3 columns]

rost_skd_l[5]
       STD    STA   TYP
FLT                    
171  08:00  11:30  B738
172  12:40  17:40  B738
172  18:20  19:35  B738
211  08:40  10:25  B738
212  11:25  13:20  B738
..     ...    ...   ...
594  17:55  18:45  B738
595  19:20  20:25  B738
761  22:00  17:05  B772
791  04:20  08:20  B772
792  12:40  20:10  B772
[126 rows x 3 columns]

pd.merge(rekfs_skd_l[5], rost_skd_l[5], left_index=True, right_index=True, how='outer')
     STD_x  STA_x TYP_x  STD_y  STA_y TYP_y
FLT                                        
171  08:30  11:30  B738  08:00  11:30  B738
172  12:40  17:40  B738  12:40  17:40  B738
*172  12:40  17:40  B738  18:20  19:35  B738
172  18:20  19:35  B738  *12:40  17:40  B738
*172  18:20  19:35  B738  *18:20  19:35  B738
..     ...    ...   ...    ...    ...   ...
594  17:55  18:45  B738  17:55  18:45  B738
595  19:20  20:25  B738  19:20  20:25  B738
761  22:00  17:05  B772  22:00  17:05  B772
791  04:20  08:20   J7Q  04:20  08:20  B772
792  12:40  20:10   J7Q  12:40  20:10  B772
[128 rows x 6 columns]

두 데이터프레임의 차이점을 비교하고 싶습니다.(시간, type, 두 데이터프레임 중 한개만 있는 FLT 등) 두 데이터 프레임을 합쳐서 차이점을 보려는데 중복되는 데이터가 생깁니다. 중복없이 하려면 어떻게 해야 하나요?

중복되는 부분은 위에는 *로 표시해놨습니다.

# 중복되는 부분
172  12:40  17:40  B738 
172  18:20  19:35  B738

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    두 데이터프레임 모두에서 인덱스인 FLT 의 값이 172인 것이 두개씩이잖아요.

    인덱스를 기준으로 합쳐지니까, 172번 인덱스를 합칠 때에는, 2개씩을 합치는 모든 조합을 만들어야 해서, 2x2 개가 만들어지는 거죠.

    rekfs rost
    172 a 172 c
    172 a 172 d
    172 b 172 c
    172 b 172 d

    이렇게요.

    이걸 172a+172c, 172b+172d 만 만들고 싶다면, 합치기 전에 두 개씩 있는 172번 row 를 구분할 수 있는 다른 인덱스를 만들어서, 그 인덱스를 기준으로 merge 해야 겠지요.

    • 답변 감사합니다. 그래서 중복이 되는거였군요! 다르게 만들어서 해결했습니다! 감사합니다 김지용 2020.10.28 01:02

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)