2017-03-17 56 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