왼쪽과 오른쪽의 키 인덱스가 다르면 pandas merge 메서드가 이상한 작업을하는 것을 발견했습니다. 인스턴스에 대한왼쪽과 오른쪽 df의 키가 다르면 pandas merge가 이상한 일을합니다
, 나는,
0 1 2 3 4 5
0 1 2 3 4 5 6
1 1 2 3 4 5 7
2 2 3 4 5 6 7
3 2 3 4 5 6 8
을
0 1 2 3 4 5
0 1 2 1 2 3 4
1 2 3 2 3 4 5
2 1 2 3 4 5 6
3 2 2 4 5 6 7
4 2 3 5 6 7 8
left_df right_df을 따라 몇 가지 매개 변수를 사용하여 작업을 병합처럼 왼쪽과 오른쪽 dataframes 정의합니다
pd.merge(left_df, right_df, how="inner", left_on = [0,1], right_on=[0,1], indicator=False)
결과가 예상대로 발견됩니다.
0 1 2_x 3_x 4_x 5_x 2_y 3_y 4_y 5_y
0 1 2 1 2 3 4 3 4 5 6
1 1 2 1 2 3 4 3 4 5 7
2 1 2 3 4 5 6 3 4 5 6
3 1 2 3 4 5 6 3 4 5 7
4 2 3 2 3 4 5 4 5 6 7
5 2 3 2 3 4 5 4 5 6 8
6 2 3 5 6 7 8 4 5 6 7
7 2 3 5 6 7 8 4 5 6 8
그러나 left_on 및 right_on 매개 변수를 다르게 설정하면 결과가 아래와 같이 매우 이상하게 변합니다.
merge job with '1,2' left key index
pd.merge(left_df, right_df, how="inner", left_on = [1,2], right_on=[0,1], indicator=False)
1 2 0_x 1_x 2_x 3_x 4_x 5_x 0_y 1_y 2_y 3_y 4_y 5_y
0 2 3 1 2 3 4 5 6 2 3 4 5 6 7
1 2 3 1 2 3 4 5 6 2 3 4 5 6 8
^^ ^^
these columns are duplicated.
0_x 1 2 3_x 4_x 5_x 2_y 3_y 4_y 5_y
0 1 2 3 4 5 6 4 5 6 7
1 1 2 3 4 5 6 4 5 6 8
this is what I expected. (keys of each df are removed.)
위의 이상한 일을 해결할 수있는 매개 변수 또는 방법이 있습니까?