4
멀티 인덱스 팬더 데이터 프레임이 있는데, 첫 번째 레벨 인덱스는 그룹이고 두 번째 레벨 인덱스는 시간입니다. 내가하고 싶은 일은 각 그룹 내에서 일일 빈도로 리 샘플링하고 일일 관측치의 평균을 취하는 것입니다.멀티 인덱스의 팬더 시간 왜곡
import pandas as pd
import numpy as np
data = pd.concat([pd.DataFrame([['A']*72, list(pd.date_range('1/1/2011', periods=72, freq='H')), list(np.random.rand(72))], index = ['Group', 'Time', 'Value']).T,
pd.DataFrame([['B']*72, list(pd.date_range('1/1/2011', periods=72, freq='H')), list(np.random.rand(72))], index = ['Group', 'Time', 'Value']).T,
pd.DataFrame([['C']*72, list(pd.date_range('1/1/2011', periods=72, freq='H')), list(np.random.rand(72))], index = ['Group', 'Time', 'Value']).T],
axis = 0).set_index(['Group', 'Time'])
이것은 내가 지금까지 뭘하려 :
daily_counts = data.groupby(pd.TimeGrouper('D'), level = ['Time']).mean()
그러나 나는 다음과 같은 오류 얻을 :
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'MultiIndex'
어떤 생각이 어떻게이 문제를 해결하기 위해?
덕분에이 내 문제를 해결 많이. 그래서 멀티 인 덱스에서 groupby를 원할 때 필자는 모든 인덱스 레벨을 그룹화 자로 전달해야합니다. 공정한가요? – FLab
네,하지만 두 번째 해결책이 더 많이 사용됩니다. [here] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#groupby-syntax-with-window-and-resample-operations)를 참조하십시오.). – jezrael
두 번째 해결 방법으로, kwargs를 resample에서 사용할 수없는이 버그 (pandas 0.19에서 수정 됨)를 강조 할 가치가 있습니다. https://github.com/pandas-dev/pandas/issues/13235 – FLab