2014-11-28 2 views
0

데이터 프레임을 통해 측정량의 일일 평균을 계산합니다.날짜 별 데이터 프레임 인덱싱 및 reset_index를 사용할 때의 문제

index_date = pd.Index (t, 이름 = '날짜') #의 t는 날짜의 배열

개체 인 DF = pd.DataFrame (가스 index_date 열 = 'A', DTYPE = 플로트)

daily_mean = df.resample ('D', 어떻게 = '평균') 위해

데이터가 나는 색인을 재설정 할 플롯하고 NumPy와 배열

을 만들려면,

daily_mean.reset_index (인플레 이스 = TRUE)

날짜 = np.array (daily_mean는 [ '날짜'])

는 = np.array (daily_mean [ 'A'])

수단 제 질문이나 문제는 다음과 같습니다 : 타이밍이 올바르지 않습니다. 예를 들어, t의 첫 번째 개체 인 datetime.datetime (1979, 8, 27, 10, 0) datetime 개체는 np.array 날짜에서 '1979-08-27T01 : 00 : 00.0000 + 0100'으로 변환됩니다. 왜 이런 일이 발생하고 올바른 시간을 얻는 방법?

아이디어 나 도움이되는 의견에 미리 감사드립니다.

답변

0

시간은, 그냥 NumPy와 특색이다 '잘못'되지 않습니다 : 나를 위해 로컬 시간대 예를 들어

,의 값은 GMT + 01 시간대에 위치하는 datetime64 NumPy와 인쇄 :

In [24]: np.datetime64('2014-01-01 00:00:00+00:00') 
Out[24]: numpy.datetime64('2014-01-01T01:00:00+0100') 

그러나 값 자체는 변경되지 않습니다. 플로팅의 경우

In [26]: np.datetime64('2014-01-01 00:00:00+00:00').item() 
Out[26]: datetime.datetime(2014, 1, 1, 0, 0) 

In [27]: print np.datetime64('2014-01-01 00:00:00+00:00').item() 
2014-01-01 00:00:00 

: 당신은 예 datetime.datetime로 다시 변환하여 볼 수 있습니다 당신은 또한 단지 daily_mean['A'].plot()

0

을 할 수있는 당신이 당신의 데이터를 변환 할 필요가 없습니다 그것을 음모를 꾸미기 위해 numpy 배열로 옮긴다. 그냥 예.

fig, ax = plt.subplots() 
ax.plot(daily_mean.index, daily_mean.values) 

plt.show() 

당신이 NumPy와 배열에 날짜 지수, 나도 몰라 변환하지만 어려운 질문 (Converting between datetime, Timestamp and datetime64을) 것 같다 때 변화가 발생하는 이유

. 데이터 프레임에 날짜가있는 배열을 다시 배치하면 올바른 형식으로 다시 나타납니다.

관련 문제