2017-03-17 53 views
0

我有一個pandas.Series字符串,表示倒數計時方式的分鐘數,我希望按照逐漸增加的時間順序將其倒置。也就是說,考慮以下Series熊貓的一系列分鐘的定製反演

pd.Series([ '30:00', '25:10', '22:30' ]) 
Out[1]: 
0 30:00 
1 25:10 
2 22:30 
dtype: object 

禰系列的條款分鐘:秒。我想反轉它並獲得整數值秒。也就是說,最高的是'30:00',我想以此爲出發點,得到0的值。'25:10'我想要5*60-10=290。對於'22:30'我需要7.5*60=450等等。因此,我希望獲得以下幾大系列:

0 0 
1 290 
2 450 
dtype: object 

我知道,原來系列可轉換成使用pd.to_datetime datetime對象。但我不確定如何從倒數倒數到增加秒數。

回答

2

更一般的和熊貓to_timedelta使用具體做法:

s = pd.to_timedelta('00:'+s).astype('timedelta64[s]') 
s = s.iloc[0] - s 

所得輸出:

0  0.0 
1 290.0 
2 450.0 
1

您可以使用適用()和轉換功能來做到這一點:

代碼:

def count_down_from_30(time_string): 
    min, sec = [int(x) for x in time_string.split(':')] 
    return 30 * 60 - 60 * min - sec 

測試:

data = pd.Series(['30:00', '25:10', '22:30']) 
data = data.apply(count_down_from_30) 
print(data) 

結果:

0  0 
1 290 
2 450 
dtype: int64