데이터 분석가 Damla's blog

파이썬으로 countif와 Sumif 하기 본문

파이썬(Python)

파이썬으로 countif와 Sumif 하기

DA Damla 2022. 10. 18. 08:36

엑셀로 countif를 하는 것과 sumif를해서 업무를 하는 경우가 많은데 이번에는 이것을 파이썬으로 해보려고한다.

순서는 1. 주어진 데이터를 merge하고 2. 그 데이터의 값을 구하고 3. 그 값을 새로운 형식으로 나타낼 것이다.

 

1. 

import pandas as pd

df1 = pd.read_excel("파일명.xlsx", sheet_name=1)
df1
df2 = pd.read_excel("파일명.xlsx", sheet_name=2)
df2
df3=df1.merge(df2, on=["업체", "메뉴"], how='left')
df3

이렇게 하면 원하는 값을 불러왔고 이후에 merge까지 했다.

*참고) on 뒤에는 두개의 표에서 더하려고 하는 콘텐츠를 리스트형식으로 넣은 것이다.


여기서 잠깐!

이 테이블을 피벗 테이블화 할 것이다. 우선 피벗테이블이란?

방향전환을 하면서 새로운 데이터 형식을 만들어내는 것을 피벗테이블이라고 한다.

 

집계함수는 값을 통계해주는 함수를 말한다.

예를 들어 sum, count, max와 같은 함수이다.

 

Pivot_table 파이썬 함수 형식

df1.pivot_table("수량", index="업체", columns="메뉴", aggfunc=sum)

aggfunction = 집계함수

 

유투브 "엑셀투 파이썬" 자료 발췌

1) 위 표에서 index 에 해당되는 내용은?

=> index = ["업체", "메뉴"]  

행에 해당되는 정보

2) 위 표에서 value에 해당되는 내용은?

=> value = "수량"

3) 컬럼은 무엇일까?

아래 표에서 장르에 해당되는 내용이 컬럼이다

열에 해당되는 정보를 말한다.

이름\장르 발라드 재즈 힙합
A      
B      
C      

방법

Step1. 데이터 불러오기

Step2. 데이터 병합(Merge)하기

Step3. 원하는 형태로 Pivot_table 만들기!

Final. 클립보드에 복사하거나, 원하는 형태로 저장하기!

 

추가 설명

df3.pivot_table("value", index="기준1", columns="기준2", aggfunc=sum)

구하고자 하는 값이 value 이고 

구분에 해당하는 것이 기준1

컬럼에 해당하는 것이 기준2 이다.

 

좀더 간단하게 하려면 컬럼없이 index만 넣어서 전체적인 값을 확인할 수도 있다.


전체 코드

import pandas as pd
df1 = pd.read_excel('E03EXAMPLE.xlsx', sheet_name=1)
df2 = pd.read_excel('E03EXAMPLE.xlsx', sheet_name=2)
df3 = df1.merge(df2, how="left")
#merge 완료!
#이제는 pivot_table 만들기
pdf1 = df3.pivot_table("value", index=["index1","index2"], aggfunc="count")
pdf2 = df3.pivot_table("value", index ="index1", aggfunc="sum")
pdf1.to_clipboard(index=True)

참고!
마지막에 클립보드에 복사할때 index를 False OR True 무엇으로 하느냐에 따라 다른 결과가 나옴

False로 하면 값으로 설정한 값만 나오고

True로 하면 앞서 설정한 표의 컬럼이 모두 추출됨!

 

 

 

출처_엑셀투파이썬 countif, sumif

https://youtu.be/UkduFXi3ITE