FDA_9회_1급_확정답안.pdf
0.65MB
분개장_1급_09회_1.csv
1.62MB
전표.csv
0.49MB
시산표.csv
0.01MB

제4회 FDA 2급확정답안.pdf
2.37MB
분개장_4회_1.csv
0.35MB

 

202206_expense_list.csv
2.76MB

기출문제

FDA_06회_1급.pdf
0.71MB


예제파일

분개장_06회_1급_2.csv
6.64MB


판다스 답안

12번

# 판다스 라이브러리 불러오기
import pandas as pd

# 파일 임포트
df = pd.read_csv('분개장_06회_1급_2.csv')

# 전표칼럼을 전표일자와 전표번호로 구분한다. 
df.insert(1, '전표일자' , df['전표'].str[3:13])
df.insert(2, '전표번호' , df['전표'].str[14:18])

#분개장 전표일자와 전표번호로 오름차순 만들기
df = df.sort_values(['전표일자', '전표번호'])

# 요약 
df_차대 = pd.DataFrame({
 '차변합계':gb_1['차변금액'].sum(),
 '대변합계' : gb_1['대변금액'].sum()
 }).reset_index()
 
df_차대['차이'] = df_차대['차변합계'] - df_차대['대변합계'] 

df_차이_발췌 = df_차대[df_차대['차이'] != 0] 

print(df_차이_발췌)

13번 전 CF_전표인덱스 칼럼 삽입

# 전표번호_1 칼럼 삽입
df['차변금액_누적'] = df['차변금액'].cumsum()
df['대변금액_누적'] = df['대변금액'].cumsum()

# 전표번호1 칼럼 계산
df['전표번호_1'] = [i[0] if i[1][0] == i[1][1] else 0 
                  for i in enumerate(zip(df['차변금액_누적'], df['대변금액_누적']))
                  ]

# 전표번호2 칼럼 삽입  
df['전표번호_2'] = -df['전표번호_1'][::-1].cumsum()

# ngroup
gb_현금흐름표_전표번호 = df.groupby(['전표번호_2'])

df['CF_전표인덱스'] = gb_현금흐름표_전표번호.ngroup()
    

# df_merged에서 칼럼 삭제
df.drop(columns =['전표번호_1' , '전표번호_2', '차변금액_누적', '대변금액_누적'], inplace = True)

13번 : 전표_인덱스

# 보통예금과 매출 계정코드 리스트 작성
보통예금_리스트 = [1110302, 1110303]
매출_리스트 = [4111101,4111301,4111302,4111501, 4130101, 4130105, 4130501]

# df에 보통예금_차변_빈도와 매출_대변_빈도 칼럼 삽입
df['보통예금_차변_빈도'] = [ 1 if i[0] in 보통예금_리스트 and i[1] > 0 else 0 
    for i in zip(df['계정코드'], df['차변금액'])]
    
df['매출_대변_빈도'] = [ 1 if i[0] in 매출_리스트 and i[1] > 0 else 0 
    for i in zip(df['계정코드'], df['대변금액'])]
    
# 그룹바이 : 전표일자, 전표번호
gb_1 = df.groupby(['전표일자', '전표번호'])

# df에 그룹바이 인덱스를 전표_인덱스 칼럼에 삽입
df['전표_인덱스'] = gb_1.ngroup()

#
df_요약 = pd.DataFrame({
 '보통예금차변빈도':gb_1['보통예금_차변_빈도'].sum(),
 '매출대변빈도' : gb_1['매출_대변_빈도'].sum()
 }).reset_index().reset_index()
 
#
df_요약.rename(columns = {'index': '전표_인덱스'},inplace =True)

# 보통예금차변빈도 > 0 & 매출대변빈도 > 0인 항목 발췌
df_요약_발췌 = df_요약[(df_요약['보통예금차변빈도'] >0) & (df_요약['매출대변빈도'] >0)]

# 결과 출력
print(df_요약_발췌)

#
df_상세 = df[df['전표_인덱스'] == 73]
상세 = Table(data = df_상세)

13번 : CF_전표인덱스

# 보통예금과 매출 계정코드 리스트 작성
보통예금_리스트 = [1110302, 1110303]
매출_리스트 = [4111101,4111301,4111302,4111501, 4130101, 4130105, 4130501]

# df에 보통예금_차변_빈도와 매출_대변_빈도 칼럼 삽입
df['보통예금_차변_빈도'] = [ 1 if i[0] in 보통예금_리스트 and i[1] > 0 else 0 
    for i in zip(df['계정코드'], df['차변금액'])]
    
df['매출_대변_빈도'] = [ 1 if i[0] in 매출_리스트 and i[1] > 0 else 0 
    for i in zip(df['계정코드'], df['대변금액'])]
    
# 그룹바이 : 전표일자, 전표번호
gb_1 = df.groupby(['CF_전표인덱스'])

#
df_요약 = pd.DataFrame({
 '보통예금차변빈도':gb_1['보통예금_차변_빈도'].sum(),
 '매출대변빈도' : gb_1['매출_대변_빈도'].sum()
 }).reset_index().reset_index()
 
#
df_요약.rename(columns = {'index': 'CF_전표인덱스'},inplace =True)

# 보통예금차변빈도 > 0 & 매출대변빈도 > 0인 항목 발췌
df_요약_발췌 = df_요약[(df_요약['보통예금차변빈도'] >0) & (df_요약['매출대변빈도'] >0)]

# 결과 출력
print(df_요약_발췌)

#
df_상세 = df[df['CF_전표인덱스'] == 73]
상세 = Table(data = df_상세)

+ Recent posts