2016-08-14 4 views
0

이 같은 dataframe는 모습입니다 : 내가 오류를 얻을 곳입니다python이 데이터 세트에서 내 달 열을 인식하지 못하는 이유는 무엇입니까?

Date Time (HHMM)   Site Plot Replicate Temperature \ 
0 2002-05-01   600 Barre Woods 16   5   4.5 
1 2002-05-01   600 Barre Woods 21   7   4.5 
2 2002-05-01   600 Barre Woods 31   9   6.5 
3 2002-05-01   600 Barre Woods 10   2   5.3 
4 2002-05-01   600 Barre Woods  2   1   4.0 
5 2002-05-01   600 Barre Woods 13   4   5.5 
6 2002-05-01   600 Barre Woods 11   3   5.0 
7 2002-05-01   600 Barre Woods 28   8   5.0 
8 2002-05-01   600 Barre Woods 18   6   4.5 
9 2002-05-01   1400 Barre Woods  2   1   10.3 
10 2002-05-01   1400 Barre Woods 31   9   9.0 
11 2002-05-01   1400 Barre Woods 13   4   11.0 
import pandas as pd 
import datetime as dt 
from datetime import datetime 
df=pd.read_csv('F:/data32.csv',parse_dates=['Date']) 
df['Date']=pd.to_datetime(df['Date'],format='%m/%d/%y') 

df2=df.groupby(pd.TimeGrouper(freq='M')) 

오류가 읽 DatetimeIndex, TimedeltaIndex 또는 PeriodIndex와 에만 유효하지만, 인스턴스를 가지고 'RangeIndex'

+0

텍스트로 샘플 데이터를 게시하시기 바랍니다 -하지 이미지 - 그것은 답변을 제공하는 샘플 실제로 테스트 및 실행 물건에 대한 것이 매우 어렵게합니다. 어쨌든, 당신이 원하는 정확한 결과는 무엇입니까? –

+0

@JonClements 감사합니다. 나는 그것을 고쳤다. 데이터 프레임을 두 부분으로 나눌 수 있도록 데이터를 몇 개월로 나누고 싶습니다. 한 부분에는 월이 있습니다 (Jan, Feb, Mar, Oct, Dec). 다른 데이터 세트에는 다른 모든 데이터가 포함되어 있습니다. –

+0

[pandas dataframe groupby datetime month] (http://stackoverflow.com/questions/24082784/pandas-dataframe-groupby-datetime-month) – Merlin

답변

1

그룹. 예를 들어 평균 온도를 계산하려면 다음을 수행하십시오.

import io 
import pandas as pd 

data = io.StringIO('''\ 
Date,Time (HHMM),Site,Plot,Replicate,Temperature 
0,2002-05-01,600,Barre Woods,16,5,4.5 
1,2002-05-01,600,Barre Woods,21,7,4.5 
2,2002-05-01,600,Barre Woods,31,9,6.5 
3,2002-05-01,600,Barre Woods,10,2,5.3 
4,2002-05-01,600,Barre Woods,2,1,4.0 
5,2002-05-01,600,Barre Woods,13,4,5.5 
6,2002-05-01,600,Barre Woods,11,3,5.0 
7,2002-05-01,600,Barre Woods,28,8,5.0 
8,2002-05-01,600,Barre Woods,18,6,4.5 
9,2002-05-01,1400,Barre Woods,2,1,10.3 
10,2002-05-01,1400,Barre Woods,31,9,9.0 
11,2002-05-01,1400,Barre Woods,13,4,11.0 
''') 

df = pd.read_csv(data) 
df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d') 

df.groupby(df['Date'].dt.month)['Temperature'].mean() 

출력 :

Date 
5 6.258333 
Name: Temperature, dtype: float64 
1

당신은 set_index 첫째 사용할 수 있습니다

그런 다음 groupby 할 수 있습니다 df['Date'].dt.month에 의해

dfx.groupby(lambda x : x.month).mean() #just for an example I am using .mean() 
+0

'Date Time' 칼럼이 없으므로'df.set_index ('Date Time')'은 KeyError를 발생시킵니다. –

관련 문제