programing

Panda 열 바인딩(cbind) 데이터 프레임 두 개

bestprogram 2023. 10. 14. 10:24

Panda 열 바인딩(cbind) 데이터 프레임 두 개

데이터 프레임이 있어요df_aID 정보:

    unique_id lacet_number
15    5570613  TLA-0138365
24    5025490  EMP-0138757
36    4354431  DXN-0025343

그리고 또 다른 데이터 프레임.df_b, 내가 알고 있는 동일한 수의 행이 의 행에 해당합니다.df_a:

     latitude  longitude
0  -93.193560  31.217029
1  -93.948082  35.360874
2 -103.131508  37.787609

제가 하고 싶은 것은 단순히 두 개를 수평으로 연결하는 것입니다(유사합니다).cbindR) 를 입력하면 다음을 얻을 수 있습니다.

    unique_id lacet_number      latitude  longitude
0     5570613  TLA-0138365    -93.193560  31.217029
1     5025490  EMP-0138757    -93.948082  35.360874
2     4354431  DXN-0025343   -103.131508  37.787609

시도해 본 내용:

df_c = pd.concat([df_a, df_b], axis=1)

바깥쪽 접합부를 만들어 주는 거지

    unique_id lacet_number    latitude  longitude
0         NaN          NaN  -93.193560  31.217029
1         NaN          NaN  -93.948082  35.360874
2         NaN          NaN -103.131508  37.787609
15    5570613  TLA-0138365         NaN        NaN
24    5025490  EMP-0138757         NaN        NaN
36    4354431  DXN-0025343         NaN        NaN

문제는 두 데이터 프레임의 지수가 일치하지 않는다는 것입니다.에 대한 설명서를 읽고 옵션이 있는 것을 보았습니다.ignore_index. 하지만 그것은 연결 축에만 적용됩니다. 제 경우에는 열이 해당되고 저에게는 분명히 올바른 선택이 아닙니다.그래서 제 질문은, 이를 달성할 수 있는 간단한 방법이 있을까요?

인덱스 행 값이 동일한 것이 확실한 경우 인덱스 정렬 순서를 피하기 위해 호출만 하면 인덱스 값이 처음부터 다시 설정됩니다.0:

df_c = pd.concat([df_a.reset_index(drop=True), df_b], axis=1)

DataFrame.join

하는 동안에concat괜찮습니다. 다음과 같이 하는 것이 더 간단합니다.

C = A.join(B)

이는 필요에 따라 정렬된 인덱스를 가정합니다.OP의 예에서,B의 인덱스는 이미 기본값이므로 재설정만 하면 됩니다.A:

C = A.reset_index(drop=True).join(B)

#    unique_id  lacet_number     latitude  longitude
# 0    5570613   TLA-0138365   -93.193560  31.217029
# 1    5025490   EMP-0138757   -93.948082  35.360874
# 2    4354431   DXN-0025343  -103.131508  37.787609

사용가능set_axis프레임 중 하나의 인덱스 레이블을 다른 프레임과 동일하게 만들고 수평으로 연결하거나 결합합니다.와는 달리reset_index, 이 방법은 데이터 프레임 중 하나의 인덱스 레이블을 보존합니다.

joined_df = pd.concat([df_a.set_axis(df_b.index), df_b], axis=1)
# or using `join`
joined_df = df_a.set_axis(df_b.index).join(df_b)

res

언급URL : https://stackoverflow.com/questions/33088010/pandas-column-bind-cbind-two-data-frames