을 dataframe 팬더와 다른 수준에서 키의 범위를 기반으로 multiindexed 행에서 슬라이스 :편리한 방법은 내가 multiindexed 팬더가 같은 종류의 dataframe이
Year
,
Month
,
Day
의 행을 multiindexed있다
data = np.random.random((1800,9))
col = pd.MultiIndex.from_product([('A','B','C'),('a','b','c')])
year = range(2006,2011)
month = range(1,13)
day = range(1,31)
idx = pd.MultiIndex.from_product([year,month,day], names=['Year','Month','Day'])
df1 = pd.DataFrame(data, idx, col)
. DatetimeIndex가있는 것처럼이 Dataframe에서 행을 선택할 수 있기를 원합니다.
DatetimeIndex와 등가 DataFrame은 다음과 같습니다
all(df2.ix['2006-06-06':'2008-10-11'] == df1'insert expression here')
내가 통해 단면을 선택할 수 있습니다 알고 True
동일하게 :
idx = pd.DatetimeIndex(start='2006-01-01', end='2010-12-31', freq='d')
timeidx = [ix for ix in idx if ix.day < 29]
df2 = pd.DataFrame(data, timeidx, col)
는 내가하고 싶은 것은 이것이다 df1.xs('2006', level='Year')
, 그러나 나는이 인덱스를 반대로 사용하도록 강요당한 것처럼 df2
에 대해 수행 된 작업을 복제하기위한 쉬운 방법이 필요합니다. DatetimeIndex에 추가합니다.
다른 세 개를 결합하여 새 열을 만들 수 없습니까? 또는 귀하의 경우 실현이 불가능합니다 –
나는 소원합니다! 필자의 경우 1850-2300 년 (DatetimeIndex는 2263 년으로 제한됨)부터 360 일 및 다른 변형과 같은 다른 달력을 사용하므로 PeriodIndex도 작동하지 않습니다. 이 접근 방식은 몇 가지 다른 장소에서 대안으로 제안되었지만 필자의 작업에서 비슷한 색인을 생성 할 수 있어야합니다. – pbreach
오, 나는 당신이 무엇을 얻고 있는지 보지 않는다. 예, 작동하지만 인덱스와 같은 세 개의 열이있는 .csv에서 데이터를로드해야하며 파일을 저장할 때마다 색인에 다시 넣어야합니다. 어쩌면 충분히 직설적 인 또 다른 방법이있을 것입니다. – pbreach