2013-11-01 7 views
0

다음 동작이 예상 되나요? 아니면 버그입니까?슬라이스 시작과 끝이 범위를 벗어날 수있는 팬더의 팬 인덱스에서 슬라이스

Dataframe에서 행이 필요한 프로세스가 있지만 boudary 조건에서 간단한 규칙 (5 일 전의 모든 행은 인덱스 외부에 부분적으로 또는 완전히 선택 항목을 생성합니다.) pandas가 Python처럼 작동하고 항상 반환하도록합니다. 때로는 어떤 행이없는 경우에도 프레임.

지수는 기간 인덱스 및 데이터 정렬됩니다.

구성 12 NumPy와 1.7 창문이 테스트에서 64

내가 df.loc 인상을 파 나스입니다 요청한 슬라이스가 완전히 int 인 색인이 아닌 경우 색인 오류

DF [시작 : 끝] 프레임을 반환 항상은 아니지만 행은 내가

이 예상대로
import pandas as pd 
october = pd.PeriodIndex(start = '20131001', end = '20131010', freq = 'D') 
oct_sales =pd.DataFrame(dict(units=[100+ i for i in range(10)]), index =october) 

#returns empty frame as desired 
oct_sales['2013-09-01': '2013-09-30'] 

# empty dataframe -- I was expecting two rows 
oct_sales['2013-09-30': '2013-10-02'] 

# works as expected 
oct_sales['2013-10-01': '2013-10-02'] 

# same as oct_sales['2013-10-02':] -- expected no rows 
oct_sales['2013-10-02': '2013-09-30'] 

답변

1

을 기대했다. 레이블 조각 (시작 : 끝)은 레이블이있는 경우에만 작동합니다. 전체 기간 동안 다시 색인 한 후 내가 생각하는 것을 얻으려면 select, then dropna를 선택하십시오. 즉, [] 색인 생성이 작동해야하지만 (어쩌면 버그) 위치는 올리기 동작이 정확합니다.

In [23]: idx = pd.PeriodIndex(start = '20130901', end = '20131010', freq = 'D') 

In [24]: oct_sales.reindex(idx) 
Out[24]: 
      units 
2013-09-01 NaN 
2013-09-02 NaN 
2013-09-03 NaN 
2013-09-04 NaN 
2013-09-05 NaN 
2013-09-06 NaN 
2013-09-07 NaN 
2013-09-08 NaN 
2013-09-09 NaN 
2013-09-10 NaN 
2013-09-11 NaN 
2013-09-12 NaN 
2013-09-13 NaN 
2013-09-14 NaN 
2013-09-15 NaN 
2013-09-16 NaN 
2013-09-17 NaN 
2013-09-18 NaN 
2013-09-19 NaN 
2013-09-20 NaN 
2013-09-21 NaN 
2013-09-22 NaN 
2013-09-23 NaN 
2013-09-24 NaN 
2013-09-25 NaN 
2013-09-26 NaN 
2013-09-27 NaN 
2013-09-28 NaN 
2013-09-29 NaN 
2013-09-30 NaN 
2013-10-01 100 
2013-10-02 101 
2013-10-03 102 
2013-10-04 103 
2013-10-05 104 
2013-10-06 105 
2013-10-07 106 
2013-10-08 107 
2013-10-09 108 
2013-10-10 109 

In [25]: oct_sales.reindex(idx)['2013-09-30':'2013-10-02'] 
Out[25]: 
      units 
2013-09-30 NaN 
2013-10-01 100 
2013-10-02 101 

In [26]: oct_sales.reindex(idx)['2013-09-30':'2013-10-02'].dropna() 
Out[26]: 
      units 
2013-10-01 100 
2013-10-02 101