0
我正在使用時間戳數據集。我必須計算觀察值的時間差(時間戳)。時間戳記爲datetime64[ns]
類型。 dfnew
是熊貓數據框。以毫微秒返回的datetime64 [ns]對象之間的區別
dfnew['timestamp'] = dfnew['timestamp'].astype('datetime64[ns]')
dfnew['dates']=dfnew['timestamp'].map(Timestamp.date)
uniqueDates=list(set(dfnew['dates']))#unique values of date in a list
#making a numpy array of timestamp for a particular date
x = np.array(dfnew[dfnew['dates']==uniqueDates[0]]['timestamp'])
y = np.ediff1d(x) #calculating consecutive difference of timestamp
print max(y)
49573580000000 nanoseconds
print min(y)
-86391523000000 nanoseconds
print y[1:20]
[ 92210000000 388030000000 0 211607000000 249337000000
19283000000 91407000000 120180000000 240050000000 30406000000
0 480337000000 13000000 491424000000 0
80980000000 388103000000 88850000000 120333000000]
dfnew['timestamp][0:20]
0 2013-12-19 09:03:21.223000
1 2013-12-19 11:34:23.037000
2 2013-12-19 11:34:23.050000
3 2013-12-19 11:34:23.067000
4 2013-12-19 11:34:23.067000
5 2013-12-19 11:34:23.067000
6 2013-12-19 11:34:23.067000
7 2013-12-19 11:34:23.067000
8 2013-12-19 11:34:23.067000
9 2013-12-19 11:34:23.080000
10 2013-12-19 11:34:23.080000
11 2013-12-19 11:34:23.080000
12 2013-12-19 11:34:23.080000
13 2013-12-19 11:34:23.080000
14 2013-12-19 11:34:23.080000
15 2013-12-19 11:34:23.097000
16 2013-12-19 11:34:23.097000
17 2013-12-19 11:34:23.097000
18 2013-12-19 11:34:23.097000
19 2013-12-19 11:34:23.097000
Name: timestamp
有沒有什麼方法可以讓我得到的輸出在hour
而非nanoseconds
。我可以使用正常的分區來轉換它,但我正在尋找其他的選擇。 另外,當我將這個文件保存到txt文件中時,「納秒」一詞也存在。我怎麼能刪除這個單位保存到txt文件我只想保存號碼。 任何幫助表示讚賞
numpy的差異不timedelata妥善處理(以及它的工作原理,但它是相當原始的);你應該至少有numpy 1.7 – Jeff
@Jeff是我有什麼必要的。其實數據集是相當大的,這就是爲什麼我堅持numpy數組。他們很快 – sau
請看這裏:http://pandas.pydata.org/pandas-docs/dev/timeseries.html#time-deltas-conversions – Jeff