Python 使用pandas将日期时间值舍入到前30秒
给出的时间戳以秒为单位。 例如: GivePython 使用pandas将日期时间值舍入到前30秒,python,pandas,datetime,Python,Pandas,Datetime,给出的时间戳以秒为单位。 例如: GivemyTime是DateTime对象 希望将时间调整为2019-06-03 11:47:30,2019-06-03 11:47:00即之前的30秒精度 可以应用的一个功能是 def timeAdjust(numSec): if numSec > 30: numSec = 30 else: numSec = 0 numSec 挑战是调用函数,如 timeAdjust(df['myTime'].s
myTime
是DateTime
对象
希望将时间调整为2019-06-03 11:47:30
,2019-06-03 11:47:00
即之前的30秒精度
可以应用的一个功能是
def timeAdjust(numSec):
if numSec > 30:
numSec = 30
else:
numSec = 0
numSec
挑战是调用函数,如
timeAdjust(df['myTime'].seconds) # Does not work ..
与“30s”一起使用:
有关您可以在此处使用的日期/时间频率的更多信息,请查看
如果要将其作为可重用函数编写,请修改代码以接受两个参数:
qualifier
,和分别表示刻度和频率的freq
def adjust_time(ser, qualifier, freq=1):
return ser.dt.floor(f'{freq}{qualifier}')
样本运行
adjust_time(pd.to_datetime(df['myTime']), qualifier='s', freq=30)
0 2019-06-03 11:47:30
1 2019-06-03 11:47:00
Name: myTime, dtype: datetime64[ns]
它对其他频率也很有效
adjust_time(pd.to_datetime(df['myTime']), qualifier='D')
0 2019-06-03
1 2019-06-03
Name: myTime, dtype: datetime64[ns]
谢谢..@cs95,但是有没有办法把时间花在定制功能上呢。如果我需要在时间调整功能中做其他事情
adjust_time(pd.to_datetime(df['myTime']), qualifier='s', freq=30)
0 2019-06-03 11:47:30
1 2019-06-03 11:47:00
Name: myTime, dtype: datetime64[ns]
adjust_time(pd.to_datetime(df['myTime']), qualifier='D')
0 2019-06-03
1 2019-06-03
Name: myTime, dtype: datetime64[ns]