일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 블로그성장일기
- 데이터리안월간웨비나
- 데이터분석
- ml 실전 프로젝트
- 데이터직무
- vader감정분석
- python 데이터 분석
- 데이터사이언티스트
- kaggle 프로젝트
- 데이터리안웨비나
- Python
- 데이터리안
- 파이썬
- 데이터 엔지니어
- 데이터엔지니어링
- 판다스
- 블로그성장글
- 데이터엔지니어
- 누적조회수1만명
- 데이터분석가
- 파이썬기초
- ai관련 직업
- 데이터 분석가
- 머신러닝 회귀 모델
- 파이썬오류
- 학생 성적 예측
- 데이터엔지니어링배우기
- ridge 회귀
- 데이터엔지니어링시작하기
- 회귀분석 프로젝트
- Today
- Total
데이터 분석가 Damla's blog
파이썬으로 다중조건 VLOOKUP 하기 본문
엑셀 작업을 하다보면 여러가지 조건을 참고해서 Vlookup기능이 필요한 경우가 있는데 이때 index와 match함수를 섞어서 써야 원하는 값을 얻을 수 있다. 즉, Vlookup한번으로는 원하는 값을 얻기 어렵다.
파이썬을 활용하면 단, 3줄의 코드로 원하는 값을 얻을 수 있다. 심지어 단순 조건을 위한 코드와 동일하다는 사실!!
어떤 경우인지 예시로 알아보자
여러개의 매장에서 비슷한 종류의 메뉴를 구매할 때
여러개의 납품업체에서 동일한 제품을 받아서 쓸 때 이런 기능이 필요하다.
납품업체 | 제품명 |
A | AVD-100 |
B | ARG-250 |
A | AVS-50 |
납품업체 | 제품명 | 가격 |
A | AVD-100 | 10,000 |
B | ARG-250 | 23,000 |
A | AVS-50 | 8,000 |
업체가 두개 이상이라면 단순 Vlookup으로는 값을 불러오기가 어렵다.
이런 데이터가 만개가 넘으면 그냥 찾아서 넣을 수도 없을 것이다.
예시를 실습하기 위한 준비물은 row data 2개를 엑셀의 다른시트에 저장한다
가장 기본적인 pandas 라이브러리를 설치하고
row data를 불러온다.
import pandas as pd
df1 = pd.read_excel("파일명.xlsx", sheet_name=1)
df1
파일명은 큰따옴표(" ")로 감싸고 시트명이 있다면 마찬가지로 따옴표로 표시할 수 있고 아니라면 왼쪽에 있는 시트 부터 숫자로 명명할 수 있다. (시작은 0부터)
df2 = pd.read_excel("파일명.xlsx", sheet_name=2)
df2
파일의 위치를 주피터 파일(코드를 입력하는 파이썬 파일)과 다른 위치에 있는 것을 불러올 수 있지만 그렇게 하면 파일의 위치를 더 추가해줘야 한다.
이제 Merge를 한다!
Merge의 입력 형태는
df1.merge(df2, on=["업체","메뉴"],how="left")
이고 여기서 on 다음에 공통되는 값을 입력만 하면 된다.
Tip!
on 다음에 굳이 넣지 않아도 원하는 값을 얻을 수 있다.
알아서 공통되는 컬럼을 파악해서 출력해준다!
df3=df1.merge(df2, how="left")
df3
앞서 저장한 시트 1의 데이터는 df1(DataFrame1) 에 저장했고 시트 2의 데이터는 df2에 저장해서 merge를 활용해서 두개의 테이블을 엮었다.
그리고 마지막에 df를 해서 출력까지 완료!
그렇다면 이 데이터를 엑셀이나 csv파일로 저장하는 방법이 있고 아니면 클립보드에 복사하는 방법이 있다.
지금은 클립보드에 복사하는 방법으로 진행했다.
df3.to_clipboard(index=False)
출처
엑셀투파이썬_ 다중 Vlookup
'파이썬(Python) > Basic & Data analyze' 카테고리의 다른 글
[Pandas] 데이터 프레임 열다루기 (0) | 2022.12.11 |
---|---|
파이썬에서 IF문쓰기 (0) | 2022.12.04 |
파이썬으로 VLOOKUP하기 (1) | 2022.10.05 |
[파이썬] 랜덤(Random)함수, Input, import 활용 (0) | 2022.07.01 |
[파이썬] 프로그램 구성요소, 데이터 타입(str, int, float, bool) (0) | 2022.07.01 |