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형식이 유지되는 방법이 있을까요 ?
2 답변
-
저라면, 정확한 데이트타임 컬럼은 놔두고, 필요한 형태로 변환된 스트링형태의 컬럼을 하나 더 만들겠어요. (시리즈를 먼저 데이터프레임으로 바꾸고요.) 연도가 없는 월-날짜는 2월 29일이 있는지 없는지 여부 때문에, 정확하게 시간차 계산등이 안 되요.
그래프에서의 표시에서 연도가 필요 없다면, 그냥 그래프 표시할 때에만 서식 지정해서 보여주면 되고, 날짜별로 그루핑 등의 연산을 하려고 하는 거라면, dt_month_day 같은 컬럼을 만들어서 그값을 기준으로 그루핑하면 되고요.
-
제가 알기로 strftime을 하게 되면 str 객체를 받게 됩니다.
datetime 형식으로 자료를 받기를 원한다면 datetime(year = int, month = int, day = int) 명령을 통해 datetime 객체로 변환하던가, strftime 변환 전 객체를 따로 보관하시면 됩니다.
댓글 입력