2017-08-28 52 views
3

考慮這個例子如何從timeindex獲取最後一個毫秒?

idx = [pd.to_datetime('2012-02-01 14:00:00.531') , 
     pd.to_datetime('2012-02-01 14:01:00'), 
     pd.to_datetime('2012-03-05 14:01:02.2'), 
     pd.to_datetime('2012-03-05 14:01:03.123'), 
     pd.to_datetime('2012-03-10 14:02:00'), 
     pd.to_datetime('2012-03-11 14:02:00') 
     ] 

test = pd.DataFrame({'value':[1,2,3,4,5,6]}, 
        index = idx) 

test 
Out[26]: 
         value 
2012-02-01 14:00:00.531  1 
2012-02-01 14:01:00.000  2 
2012-03-05 14:01:02.200  3 
2012-03-05 14:01:03.123  4 
2012-03-10 14:02:00.000  5 
2012-03-11 14:02:00.000  6 

我想提取時間戳的毫秒部分的最後一個號碼。那就是

test 
Out[24]: 
         last_milli value 
2012-02-01 14:00:00.531   1  1 
2012-02-01 14:01:00.000   0  2 
2012-03-05 14:01:02.200   0  3 
2012-03-05 14:01:03.123   3  4 
2012-03-10 14:02:00.000   0  5 
2012-03-11 14:02:00.000   0  6 

我該如何在熊貓中做到這一點,而不必把時間戳轉換爲字符串並得到最後一個字符?有沒有一個基於時間的方法來做到這一點?

謝謝!

回答

4
test.index.microsecond // 1000 % 10 

Int64Index([1, 0, 0, 3, 0, 0], dtype='int64') 

test.assign(last_milli=test.index.microsecond // 1000 % 10) 

         value last_milli 
2012-02-01 14:00:00.531  1   1 
2012-02-01 14:01:00.000  2   0 
2012-03-05 14:01:02.200  3   0 
2012-03-05 14:01:03.123  4   3 
2012-03-10 14:02:00.000  5   0 
2012-03-11 14:02:00.000  6   0 
+1

哎呦。你先知道了。刪除。 –

+2

以毫秒爲單位 – piRSquared

+0

haah不錯! '//'除以1000,'%'是整數除法? –