2017-12-18 8 views
1

xlsx 파일에서 pandas로 시간 데이터를 읽을 때. 10 진수 값으로 읽습니다.Python Pandas reading time

예 : 9 : 23 : 27 AM은 .391284722로 표시됩니다. 형식 셀을 사용하여 시간으로 변환하고 시간을 선택하여 수정할 수 있습니다. 하지만 팬더를 사용하는 것이 더 낫지는 않을 것입니다.

내가 값을 호출하고 날짜 시간 객체로 df.TIME = pd.to_datetime (df.TIME)

그것은 1970-01-01 원하는 시간 9 인이 날짜로 변경을 변환 할 때 : 23:27 AM

도움을 주시면 대단히 감사하겠습니다. 감사합니다.

+0

'pandas.to_datetime'가 명시 적 년/월/일 스탬프를 필요로하는 암시 적 추론 시스템이 있습니다. 아무 것도 수신하지 않으면 시간은 1970-01-01에 시작하는 datetime 객체로 변환됩니다. 'TIME' 칼럼으로 무엇을하려고합니까? – HSchmachty

+0

나는 판다가 정확히 어떻게 코드화 된 코드를 9.23.27로 읽어야하는지 정확히 읽고 싶다. .391284722 .... –

답변

0

질문에 시간대에 대한 최종 목적을 명확히 설명하는 문구가있을 수 있습니다. 하지만 일반적인 목적으로 에 format 키워드를 사용해보세요. http://strftime.org/

+0

시간 열에 날짜가 없다. 시간 만 관련되어있다. 시간을 읽을 때 십진법으로 시간을 가리 킵니다. –

2

데모 :

df = pd.read_excel(filename, dtype={'col_name':str}) 

In [51]: df 
Out[51]: 
      time 
0 9:23:27 AM 
1 12:59:59 AM 

In [52]: df['time2'] = pd.to_timedelta(df['time']) 

In [53]: df 
Out[53]: 
      time time2 
0 9:23:27 AM 09:23:27 
1 12:59:59 AM 12:59:59 

In [54]: df.dtypes 
Out[54]: 
time    object 
time2 timedelta64[ns] 
dtype: object 

UPDATE : 부동 소수점 숫자로 변환하기 위해 (#

이 문자열로 해당 열을 읽을

df.TIME=pd.to_datetime(df.TIME, format='%I:%M%S %p') 

형식이 웹 사이트를 참조하십시오 초 단위) Excel에서 읽으십시오 다음을 시도하십시오 :

소스 DF :

In [85]: df 
Out[85]: 
     time 
0 0.391285 
1 0.391285 
2 0.391285 

솔루션 :

In [94]: df['time2'] = pd.to_timedelta((df['time'] * 86400).round(), unit='s') 

In [95]: df 
Out[95]: 
     time time2 
0 0.391285 09:23:27 
1 0.391285 09:23:27 
2 0.391285 09:23:27 

In [96]: df.dtypes 
Out[96]: 
time    float64 
time2 timedelta64[ns] 
dtype: object 
+0

안녕하세요 맥스, 읽는 부분이 문제가됩니다. 9시 23 분 27 초 ......... –

+0

@pythonninja가 아닌 10 진수로 읽습니다.'dtype = { 'column_name': str}을 사용 했습니까? '? – MaxU

+0

예 .. 그랬습니다 .. 더 긴 문자열로 읽습니다. 0.3912847222222222 –