2013-10-06 1 views
0

팬더를 사용한 시간 계산 &을 사용하는 데 문제가 있습니다.python numpy 또는 pandas를 사용하여 시계열 데이터에 날짜 및 시간 정보를 추가하는 방법

특정 날짜가 & 시간으로 자동 시작되는 기간을 계산하는 논리가 있다고 생각합니다. 그러나 아직도 나는 그것을 발견 할 수 없었다.

& 시간 정보를 1 초 동안의 시계열 데이터에 추가하는 방법을 알고 싶습니다.

Before: 
10 
12 
13 
.. 
20 
21 
19 
18 

After: 
1013-01-01 00:00:00 10 
1013-01-01 00:00:01 12 
1013-01-01 00:00:02 13 
.. 
1013-10-04 12:45:40 20 
1013-10-04 12:45:41 21 
1013-10-04 12:45:42 19 
1013-10-04 12:45:43 18 

아무 도움이됩니다. 미리 감사드립니다.

답변

2

와 날짜 오브젝트의리스트이다. 당신이 Series 객체가있는 경우 1 초 빈도로, (나는 2013에 대한 오타했다 1013 있으리라 믿고있어) 적절한 시간에 DatetimeIndex 시작을하고, 적절한 길이의 수 :

>>> x = pd.Series(np.random.randint(8,24,23892344)) # make some random data 
>>> when = pd.date_range(start=pd.datetime(2013,1,1),freq='S',periods=len(x)) 
>>> when 
<class 'pandas.tseries.index.DatetimeIndex'> 
[2013-01-01 00:00:00, ..., 2013-10-04 12:45:43] 
Length: 23892344, Freq: S, Timezone: None 

그런 다음 새 색인으로 사용하여 원본 데이터에서 새 시리즈를 만들 수 있습니다.

>>> x_with_time = pd.Series(x.values, index=when) 
>>> x_with_time 
2013-01-01 00:00:00 13 
2013-01-01 00:00:01 14 
2013-01-01 00:00:02 15 
2013-01-01 00:00:03 22 
2013-01-01 00:00:04 16 
[...] 
2013-10-04 12:45:41 21 
2013-10-04 12:45:42 16 
2013-10-04 12:45:43 15 
Freq: S, Length: 23892344 
+0

조언 해 주셔서 감사합니다. – user1913171

+0

가장 쉬운 방법은 사람이 읽을 수있는 형식 인'dateutil'에 의해 파싱 할 수있는 형식으로 날짜를 작성하는 것입니다 : date_range ('2013/1/1', ...)' –

1

파이썬의 datetime 모듈을 타임 스탬프와 결합하면 어떨까요? 그 후

from datetime import datetime 

START_TIME = 1381069963.506736 
secs = [10, 12, 13, 20, 21, 19, 18] 
dates = [datetime.fromtimestamp(START_TIME + sec) for sec in secs] 

이 목록은 날짜가 documentationdate_range을 사용하여 처음에 유사한 예를 제공 START_TIME + <given interval from time series data>

+0

감사합니다. 나는 그것을 검사 할 것이다! – user1913171

관련 문제