본문 바로가기
카테고리 없음

pandas 강의록 카드정보 정리하기

by 비즈지니 2025. 6. 25.
반응형

 










Selection deleted

df.info()

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 12000 entries, 0 to 11999

Data columns (total 4 columns):

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 승인일자 12000 non-null object

1 카드사 12000 non-null object

2 가맹점명 12000 non-null object

3 결제금액 12000 non-null int64

dtypes: int64(1), object(3)

memory usage: 375.1+ KB

0 이마트 박

1 가평군 마트

2 쿠팡

3 고양시 일산서구 마트

4 쿠팡

...

11995 조전 주유소

11996 부여군 마트

11997 김포시 마트

11998 미영 편의점

11999 성호 편의점

Name: 가맹점명, Length: 12000, dtype: object

category_dict = {

'여비교통비' : ['주유소', '교통', '호텔'],

'복리후생비' : ['식당', '음식점' ],

'소모품비' : ['쿠팡', '마트', '편의점']

}

새로운 계정과목이라는 파생변수를 생성하는 코드를 작성해 주세요

 

import pandas as pd

# category_dict 정의
category_dict = {
    '여비교통비': ['주유소', '교통', '호텔'],
    '복리후생비': ['식당', '음식점'],
    '소모품비': ['쿠팡', '마트', '편의점']
}

# 계정과목 분류 함수 정의
def get_category(store_name):
    for category, keywords in category_dict.items():
        for keyword in keywords:
            if keyword in store_name:
                return category
    return '기타'  # 어떤 키워드에도 해당하지 않으면 '기타'

# 파생변수 생성
df['계정과목'] = df['가맹점명'].apply(get_category)

# 분석: 계정과목별 결제금액 합계, 건수, 비율
summary = df.groupby("계정과목").agg(
    결제금액합계=("결제금액", "sum"),
    건수=("결제금액", "count")
).reset_index()

# 전체 결제금액 대비 비율 계산
total_amount = summary["결제금액합계"].sum()
summary["비율(%)"] = (summary["결제금액합계"] / total_amount * 100).round(2)

# 비율 기준 내림차순 정렬
summary = summary.sort_values(by="비율(%)", ascending=False)

# 결과 출력
df

 

 

반응형