2012-06-27 2 views
3

사용 가능한 시간 만 포함하는 timeseries 데이터를 읽습니다. 이로 인해 값이 누락되지 않고 불규칙한 간격의 인덱스가있는 Series이됩니다. 이 값을 누락 된 값이있는 동일한 간격의 인덱스와 함께 Series으로 변환하고 싶습니다. 내가 간격이 일 무슨 선험적으로 알 수 없기 때문에, 나는 현재 간격이되어야 하는지를 계산하는새 오프셋을 계산하지 않고 팬더 리터 리 샘플링

min_dt  = np.diff(series.index.values).min() 
new_spacing = pandas.DateOffset(days=min_dt.days, seconds=min_dt.seconds, 
           microseconds=min_dt.microseconds) 
series  = series.asfreq(new_spacing) 

같은 기능을 사용하고 있습니다 (이 팬더 0.7.3을 사용하고 있습니다 - 0.8 베타 Numpy 1.6에서 올바른 동작을 위해 series.index.to_pydatetime()을 사용해야하므로 코드가 약간 다르게 보입니다.

팬더 라이브러리를 사용하여이 작업을 수행하는 더 쉬운 방법이 있습니까?

답변

0

당신은 NaN이의 데이터가, 당신은 단지 (팬더 0.7.x 기준) datetools에 위치한 Minute()을 사용할 수 없습니다가있는 장소에서 원하는 경우

from pandas.core.datetools import day, Minute 
tseries.asfreq(Minute()) 
1과 균등 시계열을 제공해야

NaN과의 분 차이는 데이터가없는 시리즈 값입니다.

+0

이렇게 말하면 항목 사이에 1 분 간격이 생깁니다. 간격을 어디 항목간에 최소 간격 (예 : 데이터의 "실제"빈도 - 매 24 시간마다 또는 매 12 시간마다 등 간격으로 균등하게 간격을 둡니다.) . –

+0

죄송합니다. 질문에 대한 오해. 이 경우 나는 당신이 가진 것보다 쉬운 방법이 있는지 확실하지 않습니다. 그게 뭐가 잘못 되었 니? – reptilicus

+1

엄밀히 말하면, "잘못된"것은 없지만, 팬더 라이브러리에 대해 더 많이 배울 때, 내가 알지 못하는 내장 함수를 다시 구현하는 것을 피하고 싶습니다. 또한 NumPy에서 인덱스의 명시 적 값을 사용하면 pandas 인덱스에서 괜찮은 것처럼 보이는 NumPy datetime 유형을 사용하는 pandas 0.8.0 베타에서 몇 가지 문제가 발생했지만 기본 NumPy 배열을 보면 이상한 값을 보였습니다. 잘못된 계산. –

관련 문제