programing

Python Panda는 특정 열만 병합합니다.

lastmoon 2023. 8. 20. 12:28
반응형

Python Panda는 특정 열만 병합합니다.

일부 열만 병합할 수 있습니까?x, y, z 및 df2 열이 있는 데이터 프레임 df1과 x, a, b, c, d, e, f 등이 있습니다.

x의 두 DataFrame을 병합하고 싶지만 전체 DataFrame이 아닌 df2.a, df2.b 열만 병합하고 싶습니다.

결과적으로 x, y, z, a, b가 있는 데이터 프레임이 됩니다.

병합한 후 원하지 않는 열을 삭제할 수 있지만 더 좋은 방법이 있는 것 같습니다.

VLOOKUP 작업을 수행하는 경우 두 개의 대괄호를 사용해야 합니다.

df = pd.merge(df,df2[['Key_Column','Target_Column']],on='Key_Column', how='left')

이렇게 하면 원본 df의 모든 항목이 표시되고 df2에 가입할 열을 하나 추가할 수 있습니다.

하위 데이터 프레임을 병합할 수 있습니다(해당 열만 사용).

df2[list('xab')]  # df2 but only with columns x, a, and b

df1.merge(df2[list('xab')])

대상 데이터 프레임에서 열을 삭제하지만 조인에 열이 필요한 경우 다음을 수행할 수 있습니다.

df1 = df1.merge(df2[['a', 'b', 'key1']], how = 'left',
                left_on = 'key2', right_on = 'key1').drop(columns = ['key1'])

.drop(columns = 'key1')부품은 'key1'이 처음부터 참여해야 함에도 불구하고 결과 데이터 프레임에 유지되는 것을 방지합니다.

사용할 수 있습니다..loc모든 행이 포함된 특정 열을 선택한 다음 끌어옵니다.예는 다음과 같습니다.

pandas.merge(dataframe1, dataframe2.iloc[:, [0:5]], how='left', on='key')

이 예에서는 dataframe1과 dataframe2를 병합합니다.'키'에서 왼쪽 바깥쪽 조인을 선택했습니다.그러나 데이터 프레임2에 대해 지정한 데이터 프레임2입니다..iloc원하는 행과 열을 숫자 형식으로 지정할 수 있습니다.사용.:모든 행을 선택합니다.[0:5]처음 5개 열을 선택합니다.사용할 수 있습니다..loc이름으로 지정하지만 긴 열 이름을 다루는 경우.iloc더 나을 수도 있습니다.

두 테이블에서 선택한 열을 병합합니다.

한다면table_1포함하다t1_a,t1_b,t1_c..,id,..t1_z열, 및table_2포함하다t2_a, t2_b, t2_c..., id,..t2_z열, 그리고 오직 t1_a, id, t2_a만이 최종 표에 필요합니다.

mergedCSV = table_1[['t1_a','id']].merge(table_2[['t2_a','id']], on = 'id',how = 'left')
# save resulting output file    
mergedCSV.to_csv('output.csv',index = False)

기본적으로 내부 조인을 사용하여 다중 문자 열 이름에 대해 허용된 응답의 약간의 확장:

df1 = df1.merge(df2[["Key_Column", "Target_Column1", "Target_Column2"]])

이는 다음과 같이 가정합니다.Key_Column는 두 데이터 프레임의 유일한 공통 열입니다.

언급URL : https://stackoverflow.com/questions/17978133/python-pandas-merge-only-certain-columns

반응형