Python Merge 함수 원리 및 용법 해석
쉽게 말 하면 Merge 함 수 는 Excel 의 vlokup 함수 에 해당 합 니 다.두 테이블 을 데이터 로 통합 할 때 두 테이블 의 같은 열 을 키 로 지정 한 다음 키 를 통 해 합 쳐 질 values 값 에 일치 해 야 합 니 다.
그 다음 에 merge 함수 에 대해 Pandas 에서 1vs 1,다(m)vs1,그리고 다(m)vs 다(m)세 가지 장면 으로 나 뉜 다.하지만 평소 가장 많이 쓰 는 장면 은 다 vs 1 의 이런 장면 이다.즉,두 개의 표 중 하 나 는 키 로 서 의 값 이 중복 되 고 다른 시 계 는 키 로 서 의 값 이 유일 하 다 는 것 이다.
이런 장면 도 이해 하기 쉽다.예 를 들 어 우 리 는 생산 환경 에서 서버 를 관리 하 는데 한 대의 서버 에 여러 가지 소프트웨어 가 설치 되 어 있 을 수 있다.그럼 Excel 표 로 관리 하면 한 소프트웨어 가 한 줄 의 정 보 를 차지 합 니 다.서버 이름 은 같 습 니 다.그래서 같은 서버 이름 이 여러 개 나 옵 니 다.
이 서버 에 몇 개의 소프트웨어 가 설치 되 어 있 으 면 서버 이름 이 몇 번 반복 되 는데,즉 최종 몇 줄 이 있다 는 것 이다.그러면 다른 시 계 는 이 서버 에 설 치 된 모든 소프트웨어 를 읽 으 려 면 서버 이름 은 key 이 고 각 소프트웨어 의 정 보 는 value 값 입 니 다.마지막 으로 읽 힌 표 의 키 는 유일 합 니 다.
우 리 는 아래 의 이 사례 를 보면 실제 v1 이 많은 사례 이다.데이터 보안 을 위해 서 는 캡 처 를 공유 하고 서버 이름 을 가 릴 수 밖 에 없 으 니 양해 바 랍 니 다.
데이터 시트 1:조회 의 총 표 로 서 서버 이름 은 B 열 에 있 는 정보 가 중복 되 는 것 입 니 다.
데이터 시트 2:아래 표 는 표 1 의 key 에 따라 hostname 으로 일치 합 니 다.일치 한 후에 표 2 의 열 이름 에 따라 정 보 를 읽 고 표 2 에 기록 합 니 다.여 기 는 같은 서버 이름 이 민감 하기 때문에 모자이크 로 막 았 습 니 다.양 해 를 잊 었 습 니 다.
코드 데모:
1.표 1,표 2 의 내용 을 읽 고 DataFrame 으로 변수 에 할당 합 니 다.
#%%
import pandas as pd
# 1
df01 = pd.read_excel("./datas/new_all_datas.xlsx",
header=5)
df01.head()
#%%
# 2
df02 = pd.read_excel("./datas/new_software_InputSheet.xlsx")
df02
#%%
2.merge 함 수 를 통 해 두 개의 DataFrame 를 통합 합 니 다.온 대 표 는 무엇 을 키 로 매 칭 하 는 지 밝 혔 다.how 여 기 는 left,right,inner,outer 등 방식 으로 나 뉜 다.여기 서 left 대 표 는 표 1 위주 표 에 따라 합병 한다.
#%%
#ホスト key , vlookup
#how=left left ,
df03 = pd.merge(df02,df01,on="ホスト ",how="left")
df03
결과:합병 결 과 는 다음 과 같다.그러나 표 1,표 2 에 중복 요소 의 열 이 나타 나 기 때문에 합병 후 Pandas 는 접미사 에 따라 같은 열 을x,_y 의 방식 으로 다 열 을 생 성 합 니 다.3.쓸모없는 열 을 제거 하고 조건 에 따라 원 하 는 데 이 터 를 조회 합 니 다
#%%
# _y
# ,
df03 = df03.loc[:,["ホスト "," ","ソフトウェア _y","ソフトウェア _y","ソフトウェアバ`ジョン_y","ソフトウェアu _y"]]
df04 = df03[(df03["ソフトウェア _y"]=="Trend Micro") | (df03["ソフトウェアu _y"]=="Symantec")]
#
df04.columns = ["ホスト "," ","ソフトウェア ","ソフトウェア ","ソフトウェアバ`ジョン","ソフトウェアu "]
df04
결과:4.Excel 파일 로 데 이 터 를 내 보 내기
#%%
with pd.ExcelWriter("./datas/output_mergedatas.xlsx") as writer:
df04.to_excel(writer,index=False)
print("Done!!")
결과:물론 데이터 시트 2 에 직접 가 져 올 수도 있 습 니 다.나 는 원 시 계 를 파괴 하지 않 기 위해 새로운 엑셀 표 로 내 보 냈 다.여러분 은 일상적인 업무 에서 유사 한 장면 을 만나면 merge 함 수 를 통 해 데 이 터 를 통합 하려 고 시도 할 수 있 습 니 다.또한 loc 절편 과 발표 할 pivot,pivot 를 결합 할 수 있 습 니 다.table 투시 표 는 데 이 터 를 더욱 풍부하게 세척 합 니 다.
전체적으로 Pandas 에 익숙해 지면 엑셀 의 함수 와 매크로 에 비해 느 낄 수 있 습 니 다.Pandas 는 더욱 유연 하고 강해 집 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.