熊猫的一系列分钟的定制反演
问题描述:
我有一个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对象。但我不确定如何从倒数倒数到增加秒数。
答
更一般的和熊猫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
答
您可以使用适用()和转换功能来做到这一点:
代码:
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