import pandas as pd
# # 간이세율표 데이터프레임 생성
# tax_table = pd.DataFrame({
# '이상': [770, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000],
# '미만': [1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 3000],
# '1': [0, 1600, 2990, 4740, 6800, 8920, 10980, 13050, 15110, 17180, 19520],
# '2': [0, 0, 0, 0, 2300, 4420, 6480, 8550, 10610, 12680, 14750],
# # 필요한 경우 다른 열 추가
# })
# 엑셀 파일 읽기
file_path = '샘플간이세액표.xlsx'
tax_table = pd.read_excel(file_path, sheet_name='Sheet1')
# 소득 구간을 Interval로 변환
tax_table['소득구간'] = pd.IntervalIndex.from_arrays(tax_table['이상'], tax_table['미만'], closed='left')
# 직원 데이터프레임 생성
employees = pd.DataFrame({
'이름': ['갑', '을', '병'],
'소득': [1101, 1500, 2000],
'부양가족수': [1, 2, 3]
})
# 부양가족수 열 추가 및 데이터 타입 맞추기
tax_table = tax_table.melt(id_vars=['이상', '미만', '소득구간'], var_name='부양가족수', value_name='소득세')
tax_table['부양가족수'] = tax_table['부양가족수'].astype(int)
employees['부양가족수'] = employees['부양가족수'].astype(int)
# merge_asof를 사용하여 소득세 계산
result = pd.merge_asof(employees.sort_values('소득'),
tax_table.sort_values('이상'),
left_on='소득',
right_on='이상',
by='부양가족수',
direction='backward')
# 결과 출력
print(result[['이름', '소득', '부양가족수', '소득세']])
'컴퓨터 > Python' 카테고리의 다른 글
국민연금 월불입액 파일 손상된 파일 xlsx로 정상적으로 저장하는 코드 (0) | 2025.03.25 |
---|---|
python xlsm파일 grok 가공 vba 포함하기 (0) | 2025.03.12 |
python pyside6 exceltoexcel modify same file same sheet (0) | 2025.01.10 |
python 구구단 dataframe 저장 (0) | 2025.01.02 |
python 셀레니움 headless 실행 중 다른 동영상 보여주는 코드 (0) | 2024.12.26 |