大熊猫一系列分钟的定制倒置

时间:2017-03-17 16:58:37

标签: python python-3.x pandas timedelta python-datetime

我有一个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将原始系列转换为日期时间对象。但我不确定如何将其从倒计时转换为增加秒数。

2 个答案:

答案 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)