시간 열을 포함하는 스프레드 시트 (.xls)가 있습니다. 시간은 분 단위로 Excel에 표시됩니다 (초 단위). 예 : "50 : 59.2" "50 : 59.4" 원시 데이터에는시 : 분 : 초 .decimalseconds가 들어 있습니다. 나는 또한 사용하려고10 진수 초로 판다에 엑셀 시간을 가져 오십시오.
indata=pd.read_excel('Data.xls','Tabular Data',header=9,skiprows=[1,2,3,4,5,6,7,8,10,11,12])
indata['Time']
0 17:50:59
1 17:51:00
2 17:51:00
3 17:51:00
...
indata.Time[0].microsecond
0
indata.Time[1].microsecond
0
:
내가 팬더로 데이터를 가져
나는 두 번째의 에바 잃어버린하고 pd.ExcelFile() xls.parse과를하지만 같은 결과를 얻었다. 팬더가 Excel에서 시간을 구문 분석하는 방법을 제어 할 수있는 방법이 있습니까? 그것은 시간, 분, 초의 측면에서 "정확"해지고 있지만, 나는 그것이 필요로하는 수십을 떨어 뜨리고 있습니다.추가 정보 : 테스트로
은 또한 단지 데이터를 직접 읽어 xlrd 사용하려고했습니다. 예상대로 플로트로 읽습니다. 그러나 일부 시간 데이터에서 xlrd.xldate_as_tuple()을 사용하려고하면 1 초의 분수가 느슨합니다. 대신 datetime.timedelta()를 직접 사용하는 경우 10 진수 초가 표시됩니다.
아마 문제는 xlrd가 데이터를 삭제하고 있다는 것입니다.
직장 주변 :
나는 문제를 해결했습니다. 기본 문제는 해결되지 않지만 데이터를 읽을 수는 있습니다.
Excel에서 스프레드 시트를 열고 Time_str이라는 이름의 시간 기반 텍스트 전용 새 열을 만들었습니다. = TEXT (A13, "h : mm : ss.0")
저장 . 그런 다음 pd.read_excel을 사용하여 스프레드 시트를 읽을 수있었습니다.
마지막으로이 새로운 열을 팬더에서 다음과 같이 변환했습니다. indata_t [ 'Time2'] = indata_t.Time_str.apply (lambda x : datetime.datetime.strptime (x, '% H : % M : % % d '))
indata_t ['Time2 '] = indata_t.Time_str.apply (lambda x : datetime.datetime.strptime ('2009-01-11 ' + x, '% Y- % m- % d % H : % M : % S. % f')) kludge이지만 적어도 데이터를 가져올 수 있습니다.
문서에서'read_excel()'을 볼 수 있습니다 : convert_float : boolean, default True 정수 부동 소수점을 int (즉, 1.0 -> 1)로 변환합니다. False이면 모든 숫자 데이터가 실수로 읽혀집니다. Excel에서는 모든 숫자를 부동 소수점으로 저장합니다.'convert_float = False'를 사용해보십시오. – David
좋습니다. 방금 시도했지만 아무 것도 바뀌지 않았습니다. 여전히 십진수 초를 반올림합니다. – Adam