채택완료

파이썬 판다스 엑셀 날짜 출력 질문입니다

2022-02-03 (목) 13:44:55 2,804
Copy
import pandas as pd

from operator import index

import numpy as np

from datetime import datetime

 

df= pd.read_excel('C:/Users/user/Desktop/2022년 매출.매입 현황_TEST.xlsx',

                  sheet_name='22-01',usecols='AE,D,C,U,Y',header=6)

df=df.iloc[0:67]

df=df.rename(columns={'인력':'성명','Unnamed: 20':'금액(Free)', 'Unnamed: 24':'금액(사업자)','Unnamed: 30':'지급일'})

 

df['용역비지급']=' '

df=df[['지급일','용역비지급','소속','성명','금액(Free)','금액(사업자)']]

 

df=df.sort_values(by='소속')

df=df.iloc[0:31]

df['금액(Free)']=df['금액(Free)'].apply(lambda x : "{:,}".format(x))

df['금액(사업자)']=df['금액(사업자)'].apply(lambda x : "{:,}".format(x))

df['금액(Free)']= np.where(df['금액(Free)']=='0',df['금액(사업자)'],df['금액(Free)'])

 

df=df.drop(['금액(사업자)'],axis=1)

df=df.rename(columns={'금액(Free)':'금액'})

 

df=df.replace(15,'22-02-15')

df=df.replace(10,'22-02-10')

df=df.replace(30,'22-02-28')

df=df.replace('말일','22-02-28')

df=df.replace(20,'22-02-18')

df=df.replace(31,'22-02-28')

 

df=df.set_index("지급일")

 

df=df.sort_values(by=['지급일','소속','성명'])

 

df.to_excel('C:/Users/user/Desktop/출금.xlsx')

이러한코드에서 

df=df.replace(15,'22-02-15')

df=df.replace(10,'22-02-10')

df=df.replace(30,'22-02-28')

df=df.replace('말일','22-02-28')

df=df.replace(20,'22-02-18')

df=df.replace(31,'22-02-28')

이부분을 replace로 매번 수정하는게 아닌 15일은 다음달 15일 날짜가 출력되고

10일은 다음달 10일날짜가 출력되고 말일의 경우 다음달 말일의 날짜가 출력되지만

토요일,일요일,공휴일등 일때는 이전일의 날짜로 출력되게 할수가 있을지 궁금합니다!

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

datetime 라이브러리를 써야죠. https://docs.python.org/ko/3/library/datetime.html

답변에 대한 댓글 1개

답변 감사합니다. 도움이 많이되었어요

답변을 작성하려면 로그인이 필요합니다.