'자료실 > 재무빅데이터분석사 제2급 기출문제' 카테고리의 다른 글
| 재무빅데이터분석사 제2급 제4회 기출문제 (0) | 2025.08.27 |
|---|---|
| 재무빅데이터분석사 제2급 제8회 기출문제 (2) | 2025.07.28 |
| 재무빅데이터분석사 제2급 제4회 기출문제 (0) | 2025.08.27 |
|---|---|
| 재무빅데이터분석사 제2급 제8회 기출문제 (2) | 2025.07.28 |
암호 : python
# 판다스 라이브러리 불러오기
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(상세분석_리스트))
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)
# 판다스 라이브러리 불러오기
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급 제9회 기출문제 (0) | 2025.12.02 |
|---|---|
| 재무빅데이터분석사 제1급 제6회 기출문제 (2) | 2025.07.29 |
분개장_2급_8회_01.csv
1.15MB
선적.csv
0.02MB
수출송장.csv
0.03MB
# csv 파일 불러오기 : 한글이 깨지는 경우 encoding : cp949로 시도
df = pd.read_csv('분개장_2급_8회_01.csv')
# 전표생성자 ID, 계정과목, 차변금액 조건에 해당하는 경우 칼럼 삽입
df['빈도'] = [1 if (x[0] == 60009 and x[1] == 1215 and x[2] > 100000) else 0
for x in zip(df['전표생성자ID'], df['계정코드'], df['차변금액'])]
# df_요약 테이블 생성
gb_1 = df.groupby(['전표일자', '전표번호'])
df_요약 = pd.DataFrame(
{'빈도' : gb_1['빈도'].sum()}
).reset_index() # reset_index()를 해야 인덱스가 리셋된다.
# 필터링
df_발췌 = df_요약[df_요약['빈도'] > 0].reset_index()
# 출력
print(df_발췌)
import pandas as pd
# csv 파일 불러오기 : 한글이 깨지는 경우 encoding : cp949로 시도
df = pd.read_csv('분개장_2급_8회_01.csv')
# 칼럼 삽입
df['수출외상매출금_빈도'] = [1 if (x[0] == '수출외상매출금' and x[1] > 0) else 0
for x in zip(df['계정과목'], df['대변금액'])]
df['외환차손_빈도'] = [1 if (x[0] == '외환차손' and x[1] > 0) else 0
for x in zip(df['계정과목'], df['차변금액'])]
# df_요약 테이블 생성
gb_1 = df.groupby(['전표일자', '전표번호'])
df_요약 = pd.DataFrame(
{'수출외상매출_빈도' : gb_1['수출외상매출금_빈도'].sum(),
'외환차손_빈도' : gb_1['외환차손_빈도'].sum(),
}
).reset_index() # reset_index()를 해야 인덱스가 리셋된다.
# 필터링
df_발췌 = df_요약[(df_요약['수출외상매출_빈도'] > 0) & (df_요약['외환차손_빈도'] > 0)]
# 출력
print(df_발췌)
print(len(df_발췌))
import pandas as pd
import datetime as dt
# 데이터프레임 가로 보기 확장
pd.set_option('display.max_columns', None)
# 파일 불러오기
df_수출송장 = pd.read_csv('수출송장.csv')
df_선적 = pd.read_csv('선적.csv')
# outer join
df_조인 = df_수출송장.merge(df_선적, on = '송장번호', how = 'outer' )
# 판매일자, 선적일자, 납기일 datetime 화
df_조인['판매일자'] = pd.to_datetime(df_조인['판매일자'])
df_조인['선적일자'] = pd.to_datetime(df_조인['선적일자'])
df_조인['납기일'] = pd.to_datetime(df_조인['납기일'])
df_발췌 = df_조인[(df_조인['선적일자'].isnull()) | (df_조인['선적일자'] >= dt.datetime(2018,1,1))]
print('매출과대 : ', sum(df_발췌['송장금액']))
print('2017 매출금액: ', sum(df_조인['송장금액']) -sum(df_발췌['송장금액']))
# 필수 라이브러리 임포트
import openai
import pandas as pd
import pandas_gpt
# pandas_gpt에서 openai api 선택
pandas_gpt.completer = pandas_gpt.OpenAI('o4-mini')
# OpenAI key 텍스트 저장
with open('chatGPT_api_key.txt', 'r') as file:
openai.api_key = file.read().strip()
df_전체 = pd.read_csv('분개장_2급_8회_01.csv')
질문_39 = "동일한 전표일자에 동일한 전표번호는 하나의 전표세트를 의미한다.\
전표생성자ID가 60009이며, 계정코드가 1215이고, 차변금액이 100000보다 큰 레코드가 포함되어 있는 전표세트의 개수를 구하라."
질문_40 = "동일한 전표일자에 동일한 전표번호는 하나의 전표세트를 의미한다.\
계정과목이 수출외상매출금이며 대변금액이 0보다 크고, 계정과목이 외환차손이고 차변금액이 0보다 큰 것이 포함된 전표세의 갯수를 구하고\
그 전표세트를 데이터프레임으로 나타내라."
질문_추가 = "레코드를 가장 많이 입력한 젼표생성자ID 랭킹 5위를 그래프로 보여줘. 한글이 깨지지 않게 해줘."
# 질문부분을 적절하게 수정, verbose = True는 판다스 코드를 생성해주는 파라미터
답변_1 = df_전체.ask(질문_추가,verbose=True)
print(답변_1)| 재무빅데이터분석사 제2급 제4회 기출문제 (0) | 2025.08.27 |
|---|---|
| 재무빅데이터분석사 제2급 제7회 기출문제 (0) | 2025.07.28 |