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
'programing' 카테고리의 다른 글
Null 병합 할당이란 무엇입니까?PHP 7.4의 연산자 (0) | 2023.08.20 |
---|---|
jquery를 사용하여 텍스트 상자가 비활성화되었는지 여부 확인 (0) | 2023.08.20 |
아약스 성공 함수 (0) | 2023.08.20 |
SQL 수: 불규칙한 동작 (0) | 2023.08.20 |
도커 빌드에서 "컨텍스트를 준비할 수 없습니다. 컨텍스트는 디렉토리여야 합니다. /Users/tempUser/git/docker/Dockerfile" (0) | 2023.08.20 |