我有一个pandas.Series
个字符串,以倒计时的方式表示分钟,我想按照时间顺序逐渐增加它。也就是说,请考虑以下Series
:
pd.Series([ '30:00', '25:10', '22:30' ])
Out[1]:
0 30:00
1 25:10
2 22:30
dtype: object
Thee series的术语是分钟:秒。我想反转它并获得秒作为整数值。也就是说,最高的是'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
将原始系列转换为日期时间对象。但我不确定如何将其从倒计时转换为增加秒数。
答案 0 :(得分: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 :(得分:1)
您可以使用apply()和转换函数来执行此操作:
<强>代码:强>
<mask>
<强>测试强>
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)