2012-11-11 1 views
3

timeseries 데이터의 간격을 채우기 위해 resample 메서드를 사용하려고합니다. 그러나 누락 된 데이터를 채우기 위해 어떤 행이 사용되었는지 알고 싶습니다.fill_method가 포함 된 pandas의 리샘플 : 행을 복사 한 데이터를 알아야합니까?

이것은 내 입력 시리즈입니다. 리 샘플로

In [28]: data 
Out[28]: 
Date 
2002-09-09 233.25 
2002-09-11 233.05 
2002-09-16 230.25 
2002-09-18 230.10 
2002-09-19 230.05 
Name: Price 

, 내가 얻을 것이다이

In [29]: data.resample("D", fill_method='bfill') 
Out[29]: 
Date 
2002-09-09 233.25 
2002-09-10 233.05 
2002-09-11 233.05 
2002-09-12 230.25 
2002-09-13 230.25 
2002-09-14 230.25 
2002-09-15 230.25 
2002-09-16 230.25 
2002-09-17 230.10 
2002-09-18 230.10 
2002-09-19 230.05 
Freq: D 

내가

Out[29]: 
Date 
2002-09-09 233.25 2002-09-09 
2002-09-10 233.05 2012-09-11 
2002-09-11 233.05 2012-09-11 
2002-09-12 230.25 2012-09-16 
2002-09-13 230.25 2012-09-16 
2002-09-14 230.25 2012-09-16 
2002-09-15 230.25 2012-09-16 
2002-09-16 230.25 2012-09-16 
2002-09-17 230.10 2012-09-18 
2002-09-18 230.10 2012-09-18 
2002-09-19 230.05 2012-09-19 

어떤 도움을 찾고 있어요?

답변

2

SeriesDataFrame으로 변환 한 후 색인을 해당 열에 복사하십시오. (오히려 타임 스탬프/날짜 객체보다 인덱스의 문자열 표현을 반환로 DatetimeIndex.format() 여기에 유용합니다.)

In [510]: df = pd.DataFrame(data) 

In [511]: df['OrigDate'] = df.index.format() 

In [513]: df 
Out[513]: 
      Price OrigDate 
Date       
2002-09-09 233.25 2002-09-09 
2002-09-11 233.05 2002-09-11 
2002-09-16 230.25 2002-09-16 
2002-09-18 230.10 2002-09-18 
2002-09-19 230.05 2002-09-19 

집계하지 않고 리샘플링를 들어, 도우미 메서드 asfreq()있다.

In [528]: df.asfreq("D", method='bfill') 
Out[528]: 
      Price OrigDate 
2002-09-09 233.25 2002-09-09 
2002-09-10 233.05 2002-09-11 
2002-09-11 233.05 2002-09-11 
2002-09-12 230.25 2002-09-16 
2002-09-13 230.25 2002-09-16 
2002-09-14 230.25 2002-09-16 
2002-09-15 230.25 2002-09-16 
2002-09-16 230.25 2002-09-16 
2002-09-17 230.10 2002-09-18 
2002-09-18 230.10 2002-09-18 
2002-09-19 230.05 2002-09-19 

이 중간 DataFrameGroupBy 개체 호출 last() 다음, 효과적으로 쇼트 핸드이다.

In [529]: df.resample("D", how='last', fill_method='bfill') 
Out[529]: 
      Price OrigDate 
Date       
2002-09-09 233.25 2002-09-09 
2002-09-10 233.05 2002-09-11 
2002-09-11 233.05 2002-09-11 
2002-09-12 230.25 2002-09-16 
2002-09-13 230.25 2002-09-16 
2002-09-14 230.25 2002-09-16 
2002-09-15 230.25 2002-09-16 
2002-09-16 230.25 2002-09-16 
2002-09-17 230.10 2002-09-18 
2002-09-18 230.10 2002-09-18 
2002-09-19 230.05 2002-09-19 
+0

감사합니다. 그것은 효과가 있었다. – pvncad

관련 문제