2017-10-15 3 views
1

'날짜'를 매우 드문 방식으로 나타내는 열 ID를 사용하는 'train'이라는 데이터 프레임이 있습니다. 예 : ID의 특정 항목 :파이썬을 사용하여 숫자 집합을 날짜 형식으로 변환

For example, the value of ID 2013043002 represents the date 30/04/2013 
02:00:00 

처음 4 자리 숫자는 이후 연도를 나타냅니다. 이후 2 자리 숫자는 각각 월과 일을 나타냅니다. 마지막 두 자리는 시간을 나타냅니다.

그래서 이것을 시계열 분석을 수행하기 위해 적절한 날짜 시간 형식으로 변환하고 싶습니다.

+2

그래서 무엇을 시도 했습니까? 다른 datetime과 동일한 형식 문자열을 제공하면됩니다. – roganjosh

+0

@jezrael 감사합니다. 끝난! :) –

+0

당신은 환영합니다! 해결책을 받아 들일 수 있습니까? 위의 주석을 참조하십시오. 감사. – jezrael

답변

3

사용 to_datetime - 확인 http://strftime.org/ :

df = pd.DataFrame({'ID':[2013043002,2013043002]}) 

df['ID'] = pd.to_datetime(df['ID'], format='%Y%m%d%H') 
print(df) 
        ID 
0 2013-04-30 02:00:00 
1 2013-04-30 02:00:00 

print(df['ID'].dtype) 
datetime64[ns] 
2

날짜 시간 조정에는 datetime을 사용하십시오. 매개 변수 format

datetime.strptime(d,"%Y%m%d%H").strftime("%d/%m/%Y %H:%M:%S") 
0

먼저 할거야 경우 문자열이나 숫자 형식화하는 놀 수있는 아이디에 항상 동일한 입력 스타일을 가지고 ...

Id = 2013043002 
Year = Id[0:3] 
Month = Id[4:5] 
Day = Id[6:7] 
Time= Id[-2:-1] 

DateFormat = "{}-{}-{}".format(Day,Month,Year) 
TimeFormar = "%d:00:00"%Time 
Print (DateFormat) 
Output: 
04:30:2013 

다음으로이 코드를 함수로 묶고 루프별로 모든 ID를 전달하고 데이터를 관리 할 수 ​​있습니다.

물론 이전 ID 입력 형식을 모르면 다른 시간 모듈 옵션을 사용해야하며 원하는 순서대로 표시하기 위해 문자열 형식을 관리해야합니다.

0

모듈 날짜를 이용하여 사용자가 기능 strptime 쉽게 그렇게 할 수

my_date = datetime.datetime.strptime(ID, "%Y%m%d%H") 

"%의 Y %의 m % d 개 %의 H" 는 날짜의 형식 % Y가 인 년 % m은 월 (0 패딩), % d는 날짜 (0 패딩), % H는 시간 (24H, 0 패딩)입니다. 자세한 내용은 http://strftime.org/을 참조하십시오.

관련 문제