2012-09-20 5 views
1

날짜 및 시간 목록을 CSV 형식으로 표시합니다. 나는 모든 고유 한 날짜에 함수를 수행하려고합니다. 매번 그 날짜와 연관된 시간입니다. 이 함수는 처음으로 의 새 시간 ()으로 시작해야합니다. 각 날짜는 42 번 반복됩니다. 62,035 개의 행이 있습니다. 나는 말하고있다 :고유 한 날짜로 기능 제한 - 다중 색인

나의 질문 : 'for'루프와 같은 루프는 논리 적으로 그 목적을 달성 할 수 있을까? I.E., 해당 날짜의 모든 시간에 대해 새로운 날짜마다 "무언가를하십시오". 그런 다음 다음 날짜로 이동하십시오 ...

바로 지금 'Index out of range'라는 IndexError가 발생합니다.
이것이 일어날 수있는 이유는 무엇입니까?

+0

추적을 게시 할 수 있습니까? – darkfeline

답변

0
In [1]: df = pd.DataFrame({'duty': {('11/12/2012', '10:00'): 0, ('12/12/2012', '10:00'): 0, ('12/12/2012', '11:00'): 1}, 'prices': {('11/12/2012', '10:00'): 1, ('12/12/2012', '10:00'): 2, ('12/12/2012', '11:00'): 3}}) 

In [2]: df.index = pd.MultiIndex.from_tuples(df1.index) 

In [3]: df 
Out[3]: 
        duty prices 
11/12/2012 10:00  0  1 
12/12/2012 10:00  0  2 
      11:00  1  3 

In [4]: g = df.groupby(level=0) 

당신은 transformation 또는 aggregation을 사용하여 자신을 어떤 표준 GROUPBY 작업을 수행하거나 작성할 수 있습니다 the docs에 더 많은 예제를있다

In [5]: g.sum() 
Out[5]: 
      duty prices 
11/12/2012  0  1 
12/12/2012  1  5 

In [6]: g.transform(lambda x: x - x.mean()) 
Out[6]: 
        duty prices 
11/12/2012 10:00 0.0  0.0 
12/12/2012 10:00 -0.5 -0.5 
      11:00 0.5  0.5 

In [7]: g.agg({'prices': np.mean, 'duty': len}) 
Out[7]: 
      duty prices 
11/12/2012  1  1.0 
12/12/2012  2  2.5 

.