인프런 커뮤니티 질문&답변

파이썬조아~님의 프로필 이미지

작성한 질문수

단 두 장의 문서로 데이터 분석과 시각화 뽀개기

10) assign 으로 새로운 컬럼 만들기, qcut으로 binning, bucketing 하기

pandas 날짜 계산 질문 드립니다.

19.10.15 00:38 작성

·

222

1

안녕하세요. 멋진 강의 잘 듣고 있습니다. 

pandas 를 활용해서 날짜 계산을 하고 싶은데.

df = pd.DataFrame({"YYYYMMDD1":['20190930','20190930','20190930','20190930'],

                "YYYYMMDD2":['20190930','20190205','20190315','20190420']})

#한달 후 동일일자

df["경과일자"] = (pd.to_datetime(df["YYYYMMDD2"]) + pd.DateOffset(months=1)).dt.strftime('%Y%m%d')

#한달 후의 시작일자

df["경과일자_start"] = (pd.to_datetime(df["YYYYMMDD2"]) + pd.offsets.MonthBegin(1)).dt.strftime('%Y%m%d')

#한달 후의 마지막 일자

df["경과일자_end"] = (pd.to_datetime(df["YYYYMMDD2"]) + pd.offsets.MonthEnd(1)).dt.strftime('%Y%m%d')

result

YYYYMMDD1 YYYYMMDD2 경과일자 경과일자_start 경과일자_end
0 20190930 20190930 20191030 20191001 20191031
1 20190930 20190205 20190305 20190301 20190228
2 20190930 20190315 20190415 20190401 20190331
3 20190930 20190420 20190520 20190501 20190430

컬럼이 밀렸는데요... ㅜㅜ

마지막 컬럼상 날짜(경과일자_end)가 20191031은 제가 원하는 결과이고

그 다음 3개의 값은 20190331, 20190430, 20190531 의 결과값을 원합니다. 

어떻게 하면 직관적으로 위의 작업이 가능할까요?

감사합니다. ~~~

답변 2

0

파이썬조아~님의 프로필 이미지

2019. 10. 16. 00:09

감사합니다

0

박조은님의 프로필 이미지
박조은
지식공유자

2019. 10. 15. 12:06

안녕하세요.

제가 질문을 제대로 이해한건지 잘 모르겠는데, 아래 링크를 참고해서 date_range의 periods와 freq를 사용해 보시는게 어떨까 싶어요. 

감사합니다.

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.date_range.html