2017-05-16 6 views
0

반복 된 측정 데이터 (시간 만, 날짜 없음)에 대한 timeseries 분석은 밤 22:00:00에서 09:00:00까지 실행하고 싶습니다. 아침.팬더를 사용하여 CSV에서 날짜가없는 이전 밤부터 시작 시간을 설정하십시오.

시간은 22:00:00에 시작하도록 시간을 어떻게 설정합니까? 현재 플롯 할 때도 00:00:00에 시작하여 23:00:00에 끝나고 09:00:00에서 23:00:00 사이에 납작한 선이 생깁니 까?

df = pd.read_csv('1310.csv', parse_dates=True) 
df['Time'] = pd.to_datetime(df['Time']) 
df['Time'].apply(lambda d : d.time()) 
df = df.set_index('Time') 
df['2017-05-16 22:00:00'] + pd.Timedelta('-1 day') 

참고 : 코드의 마지막 줄의 날짜이 자동으로 df['Time']이 실행될 때 볼, 추가, 그래서 나는 22시 0분 0초의 마지막 줄에 날짜와 같은 형식을 삽입됩니다.

TypeError: Could not operate Timedelta('-1 days +00:00:00') with block values unsupported operand type(s) for +: 'numpy.ndarray' and 'Timedelta' 

답변

1

당신은 pd.Timedeltas로 타임 스탬프를 고려하고 시작 시간 전에 샘플로 하루를 추가해야합니다 :

는 오류입니다. 인덱스에게 timedelta을,

import pandas as pd 
d = pd.date_range(start='22:00:00', periods=12, freq='h') 
s = pd.Series(d).dt.time 
df = pd.DataFrame(pd.np.random.randn(len(s)), index=s, columns=['value']) 
df.to_csv('data.csv') 

df 
      value 
22:00:00 -0.214977 
23:00:00 -0.006585 
00:00:00 0.568259 
01:00:00 0.603196 
02:00:00 0.358124 
03:00:00 0.027835 
04:00:00 -0.436322 
05:00:00 0.627624 
06:00:00 0.168189 
07:00:00 -0.321916 
08:00:00 0.737383 
09:00:00 1.100500 

에서 읽기 시작 시간 전에 timedeltas에 하루를 추가, 다시 인덱스에 할당합니다

몇 가지 예를 들어 데이터를 생성합니다.

df2 = pd.read_csv('data.csv', index_col=0) 
df2.index = pd.to_timedelta(df2.index) 
s = pd.Series(df2.index) 
s[s < pd.Timedelta('22:00:00')] += pd.Timedelta('1d') 
df2.index = pd.to_datetime(s) 

df2 
        value 
1970-01-01 22:00:00 -0.214977 
1970-01-01 23:00:00 -0.006585 
1970-01-02 00:00:00 0.568259 
1970-01-02 01:00:00 0.603196 
1970-01-02 02:00:00 0.358124 
1970-01-02 03:00:00 0.027835 
1970-01-02 04:00:00 -0.436322 
1970-01-02 05:00:00 0.627624 
1970-01-02 06:00:00 0.168189 
1970-01-02 07:00:00 -0.321916 
1970-01-02 08:00:00 0.737383 
1970-01-02 09:00:00 1.100500 

첫 번째 날의 날짜 설정하려면 :

df2.index += (pd.Timestamp('2015-06-06') - pd.Timestamp(0)) 

df2 
        value 
2015-06-06 22:00:00 -0.214977 
2015-06-06 23:00:00 -0.006585 
2015-06-07 00:00:00 0.568259 
2015-06-07 01:00:00 0.603196 
2015-06-07 02:00:00 0.358124 
2015-06-07 03:00:00 0.027835 
2015-06-07 04:00:00 -0.436322 
2015-06-07 05:00:00 0.627624 
2015-06-07 06:00:00 0.168189 
2015-06-07 07:00:00 -0.321916 
2015-06-07 08:00:00 0.737383 
2015-06-07 09:00:00 1.100500 
+0

완벽하게 작동! 정말 고맙습니다. ** 매우 도움이됩니다 ** : – offthehook