기출문제
예제파일
암호 : python
판다스 답안
13번
# 판다스 라이브러리 불러오기
import pandas as pd
# 파일 임포트
df_전체 = pd.read_csv("분개장_08회_1급_1.csv", encoding = 'utf-8', sep = ',')
# 외상매출금 계정코드 리스트 처리
외상매출금_계정코드 = [10080, 10081,10082,10083,10084,10085]
# 매출 계정코드 리스트 처리
매출_계정코드 = [40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009,
40010, 40011, 40012, 40013]
# 외상매출금_차변빈도, 매출액_대변빈도 칼럼 삽입
df_전체['외상매출금_차변'] = [1 if i[0] in 외상매출금_계정코드 and (i[1] > 0 or i[2] <
0) else 0 for i in zip(df_전체['계정코드'], df_전체['차변금액'], df_전체['대변금액'])]
df_전체['매출_대변'] = [1 if i[0] in 매출_계정코드 and (i[1] < 0 or i[2] > 0) else 0
for i in zip(df_전체['계정코드'], df_전체['차변금액'], df_전체['대변금액'])]
# groupby : 전표번호, 전표일자
gb_전표번호_일자 = df_전체.groupby(['전표일자','전표번호'])
# 전표_인덱스 칼럼 삽입
df_전체['전표_인덱스'] = gb_전표번호_일자.ngroup()
# df_외상매출금매출_총괄 dataframe 만들기
df_외상매출금매출_총괄 = pd.DataFrame(
{'외상매출금_차변_빈도': gb_전표번호_일자['외상매출금_차변'].sum(),
'매출_대변_빈도': gb_전표번호_일자['매출_대변'].sum(),
'차변합계': gb_전표번호_일자['차변금액'].sum(),
'대변합계': gb_전표번호_일자['대변금액'].sum()}
).reset_index()
# 외상매출금_차변_빈도가 0 초과하면서 매출_대변_빈도가 0 초과하는 경우 발췌
df_외상매출금매출_발췌 = df_외상매출금매출_총괄[(df_외상매출금매출_총괄['외상매출금_차변_빈도'] >0)
& (df_외상매출금매출_총괄['매출_대변_빈도'] >0)]
# 상세분석 리스트
상세분석_리스트 = [i for i in df_외상매출금매출_발췌['전표_인덱스']]
print(len(상세분석_리스트))
14번
import pandas as pd
# 파일 임포트
df_전체 = pd.read_csv("분개장_08회_1급_1.csv", encoding = 'utf-8', sep = ',')
# 외상매입금_1 계정과목 발췌
df_외상매입금_1 = df_전체[(df_전체['계정코드'] == 20001) & (df_전체['대변금액'] > 0)]
# groupby : 거래처
gb_1 = df_외상매입금_1.groupby('거래처코드')
# 칼럼 삽입
df_외상매입금_1['거래처_인덱스'] = gb_1.ngroup()
df_외상매입금_1['대변_Max'] = gb_1['대변금액'].transform(lambda x : x.nlargest(1).max())
df_외상매입금_1['대변_2nd_Max'] = gb_1['대변금액'].transform(lambda x : x.nlargest(2).min())
df_외상매입금_1['대변_RSF'] = [ i[0]/i[1] if i[1] != 0 else -1
for i in zip(df_외상매입금_1['대변_Max'], df_외상매입금_1['대변_2nd_Max'])]
# RSF 요약 테이블 작성
df_RSF = pd.DataFrame(
{'대변_Max': gb_1['대변_Max'].max(),
'대변_2nd_Max': gb_1['대변_2nd_Max'].max(),
'대변_RSF': gb_1['대변_RSF'].max()
}).reset_index()
df_RSF_2 = df_RSF[df_RSF['대변_RSF'] > 2].reset_index()
print(df_RSF_2)
15번
# 판다스 라이브러리 불러오기
import pandas as pd
# 파일 임포트
df_전체 = pd.read_csv("분개장_08회_1급_1.csv", encoding = 'utf-8', sep = ',')
# 계정코드_1 칼럼 삽입
df_전체['계정코드_1'] = [ i[2] if i[0] > 0 and i[1] == 0
else(-i[2] if i[0] < 0 and i[1] == 0
else(-i[2] if i[0] == 0 and i[1] > 0
else( i[2] if i[0] == 0 and i[1] < 0
else( i[2] if i[0] == 0 and i[1] == 0
else 0))))
for i in zip(df_전체['차변금액'], df_전체['대변금액'], df_전체['계정코드'])
]
# groupby : 전표번호, 전표일자
gb_전표번호_일자 = df_전체.groupby(['전표일자','전표번호'])
# 칼럼 삽입
df_전체['계정코드_1_합계_중복제외'] = gb_전표번호_일자['계정코드_1'].transform(lambda x: x.unique().sum())
df_전체['계정코드_1_표준편차_중복제외'] = gb_전표번호_일자['계정코드_1'].transform(lambda x: x.unique().std())
df_전체['계정코드_1_개수_중복제외'] = gb_전표번호_일자['계정코드_1'].transform('nunique')
df_전체['전표_인덱스'] = gb_전표번호_일자.ngroup()
# groupby : 계정코드_1_합계_중복제외,계정코드_1_표준편차_중복제외
gb_계정코드_1_중복제외 = df_전체.groupby(['계정코드_1_합계_중복제외', '계정코드_1_표준편차_중복제외'])
# 인덱스 칼럼 삽입
df_전체['계정코드_1_중복제외_index'] = gb_계정코드_1_중복제외.ngroup()
# df_분개패턴 summarize 생성
df_분개패턴_1 = pd.DataFrame({
'계정코드_1_중복제외_레코드': gb_계정코드_1_중복제외['계정코드_1_개수_중복제외'].max(),
'계정코드_1_전표세트_중복제외_빈도': gb_계정코드_1_중복제외['전표_인덱스'].nunique(),
'차변합계': gb_계정코드_1_중복제외['차변금액'].sum(),
'차변Max': gb_계정코드_1_중복제외['차변금액'].max()
}).reset_index()
# 인덱스 칼럼 삽입
df_분개패턴_1.insert(0, 'S2_index', range(0, len(df_분개패턴_1)))
# 필터링
df_분개패턴_1_발췌 = df_분개패턴_1[df_분개패턴_1['계정코드_1_전표세트_중복제외_빈도'] == 2]
print(len(df_분개패턴_1_발췌))
'자료실 > 재무빅데이터분석사 제1급 기출문제' 카테고리의 다른 글
| 재무빅데이터분석사 제1급 제9회 기출문제 (0) | 2025.12.02 |
|---|---|
| 재무빅데이터분석사 제1급 제6회 기출문제 (2) | 2025.07.29 |