판다스 데이터프레임 합치기 질문
조회수 215회
# 1번 df
ndf1
Ac Reg No Flt No From To STD ETD ATD CAPTAIN
0 HL7560 LJ407 GMP CJU 23:30 23:30 23:38 CHOI,YUNKYUNG
2 HL7560 LJ584 CJU CJJ 1:45 1:45 1:52 CHOI,YUNKYUNG
3 HL7560 LJ585 CJJ CJU 3:30 6:00 7:29 KIM,HYO JIN_A
4 HL7560 LJ585 CJJ CJJ 3:33 3:33 3:33 CHOI,YUNKYUNG
7 HL7560 LJ558 CJU CJJ 8:25 9:25 9:57 KIM,HYO JIN_A
[132 rows x 8 columns]
# 2번 df
ndf2
Ac Reg No Flt No From STA ETA ATA
1 HL7560 LJ407 GMP 0:40 0:52 0:52
3 HL7560 LJ584 CJU 2:50 2:49 2:49
5 HL7560 LJ585 CJJ 4:40 8:42 8:42
6 HL7560 LJ585 CJJ 5:30 5:47 5:47
8 HL7560 LJ558 CJU 9:35 11:06 11:06
[132 rows x 6 columns]
# 1, 2번 합치기
# LJ585가 중복발생함(2개에서 4개로 늘어남)
mdf = ndf1.merge(ndf2, how='inner', on=['Ac Reg No', 'Flt No', 'From'])
Ac Reg No Flt No From To STD ETD ATD STA ETA ATA CAPTAIN
HL7560 LJ584 CJU CJJ 1:45 1:45 1:52 2:50 2:49 2:49 CHOI,YUNKYUNG
HL7560 LJ585 CJJ CJJ 3:33 3:33 3:33 5:30 5:47 5:47 CHOI,YUNKYUNG
HL7560 LJ585 CJJ CJJ 3:33 3:33 3:33 4:40 8:42 8:42 CHOI,YUNKYUNG
HL7560 LJ585 CJJ CJU 3:30 6:00 7:29 5:30 5:47 5:47 KIM,HYO JIN_A
HL7560 LJ585 CJJ CJU 3:30 6:00 7:29 4:40 8:42 8:42 KIM,HYO JIN_A
HL7560 LJ558 CJU CJJ 8:25 9:25 9:57 9:35 11:06 11:06 KIM,HYO JIN_A
[134 rows x 11 columns]
# LJ585 부분만 추출
Ac Reg No Flt No From To STD ETD ATD STA ETA ATA CAPTAIN
HL7560 LJ585 CJJ CJJ 3:33 3:33 3:33 5:30 5:47 5:47 CHOI,YUNKYUNG
HL7560 LJ585 CJJ CJJ 3:33 3:33 3:33 4:40 8:42 8:42 CHOI,YUNKYUNG
HL7560 LJ585 CJJ CJU 3:30 6:00 7:29 5:30 5:47 5:47 KIM,HYO JIN_A
HL7560 LJ585 CJJ CJU 3:30 6:00 7:29 4:40 8:42 8:42 KIM,HYO JIN_A
# LJ585 원하는 결과
Ac Reg No Flt No From To STD ETD ATD STA ETA ATA CAPTAIN
HL7560 LJ585 CJJ CJJ 3:33 3:33 3:33 5:30 5:47 5:47 CHOI,YUNKYUNG
HL7560 LJ585 CJJ CJU 3:30 6:00 7:29 4:40 8:42 8:42 KIM,HYO JIN_A
이게 왜 중복으로 발생했는지 잘 모르겠습니다 보니까 ndf1, 2의 각 LJ585에 대해 모든 조합을 만들었습니다. 중복으로 발생 안 하게 하는 방법이 있을까요?
ndf1, ndf2의 순서는 같아서 공통된 열을 기준으로 양 옆으로 붙이고 싶은데 저렇게 중복이 발생합니다
댓글 입력