2014-09-17 4 views
1

pandas.groupby 두 열에 팬더 DataFrame을 그룹화하고 평균 및 중간 시간을 계산했습니다. 내 결과 데이터 셋이 유사하게 나타납니다Python Pandas 사용자 정의 시간 형식 Excel 출력

Size  Category  Average Time  Median Time 
1    A   0.002056385   0.000310995 
       B        0.000310995 
       C   0.000310995 
10   A        0.001852681 
       B   0.000310995 
       C   0.000310995 

내가 엑셀 ​​등 같은 Excel에서 사용자 지정 형식으로 시간 열을 포맷이 테이블에 내보낼 것입니다 (HH : MM : ss.000을). 즉, 시간을 밀리 초 수준으로보고 싶습니다. 예를 들어,이 형식으로 서식이 지정된 0.000310995는 00 : 00 : 26.870 (26.870 초)으로 표시됩니다.

누구든지이 묘기를 수행하는 방법에 대한 통찰력을 가지고 있습니까?

업데이트 : 가까이 to_datetime(df['Average Time'], unit='d')를 사용하여 비트를 입수했습니다

. 내 시간은 이제 DataFrame에 1970-01-01 00:02:57.638400과 같은 형식으로되어 있습니다. 그러나 to_excel을 사용하여 Excel로 내보낼 때 Excel 출력 형식은 1970-01-01 00:02:58입니다. 이 시점에서 필자는 목표를 달성하기 위해 날짜 부분을 삭제하고 밀리 초 정밀도 만 추가하면됩니다. 이견있는 사람?

정말 감사합니다 사전에 어떤 도움을 제공 할 수 있습니다 -

+1

@pnuts는 원래 게시물을 편집하여 예제를 추가했습니다 – wrcobb

+1

Excel에서 'hh : mm : ss.000' 형식의 숫자'0.000310995 '는'00 : 00 : 26.870'으로 표시되므로 좋아하는 항목을 얻는 데 문제가 있습니다. '0.000310995'를 Excel에 숫자로 입력 하시겠습니까? – pnuts

+0

@pnuts 아주 좋은 점 - 내 문제는 Excel로 내보내기 전에 float64를 판다에서 형식화 된 시간으로 변환하여 문제가 해결 될 가능성이 가장 높음을 깨닫게했습니다. 가장 좋은 방법에 대한 생각은 무엇입니까? 'to_datetime'을 사용하고 있지만'format ='문자열에 문제가 있습니다. 이 시간은 1970 년 1 월 1 일로 datetimes로 변환 할 때 표시됩니다. – wrcobb

답변

3

당신은 팬더에 ExcelWriterdatetime_format 매개 변수를 사용할 수 있습니다 :

enter image description here

다음 출력을 제공

import pandas as pd 
from datetime import datetime 


df = pd.DataFrame([datetime(2014, 9, 18, 12, 30, 5, 60000)]) 

writer = pd.ExcelWriter("time.xlsx", datetime_format='hh:mm:ss.000') 

df.to_excel(writer, "Sheet1") 

writer.close() 

도 참조하십시오. Working with Python Pandas and XlsxWriter.

+0

이것은 완벽하게 작동했습니다 - 감사합니다! – wrcobb

+0

_datetime_ (='df.index'), _date_, _time_ 및 _month_ 열이있는 경우 작성자로 pd.ExcelWriter ('myexcel.xlsx')를 사용하여이 작업이 어떻게 작동하는지 궁금합니다. 링크 된 문서에 표시된 확장 버전을 사용해야합니까? – DaCoEx

+0

작동해야합니다. 일부 샘플 코드로 새 질문을 게시하지 않는 경우. – jmcnamara