datetime 변환

조회수 539회
charttime   
0   2180-03-16 01:30:00 96.0    
1   2180-03-16 01:45:00 93.0    
2   2180-03-16 02:00:00 90.0    
3   2180-03-16 03:00:00 89.0    
4   2180-03-16 04:00:00 86.0    
... ... ... ... ... ... ... ...
99  2180-03-19 14:00:00 76.0    
100 2180-03-19 15:00:00 71.0    
101 2180-03-19 16:00:00 68.0    
102 2180-03-19 17:00:00 70.0    
103 2180-03-19 20:00:00 76.0    

이 charttime들의 포맷을%m-%d %H:%M형식으로 (year제거)바꾸고 싶어서

df['charttime'] = pd.to_datetime(df['charttime'])
df['charttime'] = df['charttime'].dt.strftime('%m-%d %H:%M')

를 이용했습니다. 문제는 strftime을 이용하니 object가 되버리더군요. datetime형식으로 다시 바꾸는 방법이 있나요 ?

아니면 strftime을 이용하지않고 year를 제거하되 datetime형식이 유지되는 방법이 있을까요 ?

  • 2180년이 잘못된건가요? nowp 2021.3.8 11:41
  • 아니요 데이터 비교하는데 필요가 없어서 삭제하려고 합니다. 김수민 2021.3.8 17:27

2 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    저라면, 정확한 데이트타임 컬럼은 놔두고, 필요한 형태로 변환된 스트링형태의 컬럼을 하나 더 만들겠어요. (시리즈를 먼저 데이터프레임으로 바꾸고요.) 연도가 없는 월-날짜는 2월 29일이 있는지 없는지 여부 때문에, 정확하게 시간차 계산등이 안 되요.

    그래프에서의 표시에서 연도가 필요 없다면, 그냥 그래프 표시할 때에만 서식 지정해서 보여주면 되고, 날짜별로 그루핑 등의 연산을 하려고 하는 거라면, dt_month_day 같은 컬럼을 만들어서 그값을 기준으로 그루핑하면 되고요.

    • 좋은답변감사합니다 조언대로 해보겠습니다 ^^ 김수민 2021.3.8 17:56
  • 제가 알기로 strftime을 하게 되면 str 객체를 받게 됩니다.

    datetime 형식으로 자료를 받기를 원한다면 datetime(year = int, month = int, day = int) 명령을 통해 datetime 객체로 변환하던가, strftime 변환 전 객체를 따로 보관하시면 됩니다.

    • 좋은답변감사합니다 김수민 2021.3.8 17:55

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)