파이썬 판다스 concat 질문

조회수 976회

안녕하세요

행 인덱스가 다른 두 데이터프레임(열 이름은 같음)을 합치고 싶은데 아래처럼 벨류에러가 뜹니다.

pd.concat([rost_skd_l[3], rekfs_skd_l[3]], axis=1)
ValueError: Shape of passed values is (87, 6), indices imply (86, 6)

rost_skd_l[3].tail()
       STD    STA   TYP
FLT                    
595  20:10  21:10  B738
791  04:40  08:20  B772 # 없는 부분
792  12:40  20:00  B772 # 없는 부분
851  10:00  10:35  B772
852  15:35  18:05  B772

rekfs_skd_l[3].tail()
       STD    STA   TYP
FLT                    
593  08:35  09:25  B738
594  18:35  19:35  B738
595  20:10  21:10  B738
851  10:00  11:35  B738
852  16:35  18:05  B738


rost_skd_l[3].info()
<class 'pandas.core.frame.DataFrame'>
Index: 87 entries, 081 to 852
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   STD     87 non-null     object
 1   STA     87 non-null     object
 2   TYP     87 non-null     object
dtypes: object(3)

rekfs_skd_l[3].info()
<class 'pandas.core.frame.DataFrame'>
Index: 85 entries, 081 to 852
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   STD     85 non-null     object
 1   STA     85 non-null     object
 2   TYP     85 non-null     object
dtypes: object(3)

근데 reset_index()나 ignore_index 로 하면 합쳐져요. 원래 concat 함수는 해당되는 행이 없으면 그 행은 NaN 값으로 채워지는거 아니었나요? 인터넷 찾아보고 있는데 잘 모르겠어요 ㅠ

595  20:10  21:10  B738 # 생략
791  04:40  08:20  B772 NaN NaN NaN NaN 
792  12:40  20:00  B772 NaN NaN NaN NaN 
851  10:00  11:35  B738 # 생략
852  16:35  18:05  B738 # 생략

어떻게 해야 위에처럼 합칠 수 있을까요? 두개의 데이터프레임의 행 인덱스 수는 rost_skd_l가 많을 수도 있고 rekfs_skd_l이 많을 수도 있습니다

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

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

(ಠ_ಠ)
(ಠ‿ಠ)