Python:回合时间到最近的秒和分钟

时间:2014-03-05 06:51:03

标签: python time pandas

我有一个DataFrameTimestamp,其中每个值都是自午夜以来纳秒精度的秒数。例如:

Timestamp
34200.984537482
34201.395432198

等等。从午夜开始的34200秒是上午9:30:00。

我想在dataframe中创建一个新条目,其中一列SecondMinute我将Timestamp四舍五入到最接近的第二和第二分钟(前瞻性) 。所以

Timestamp         Second           Minute
34200.984537482   34201            34260
34201.395432198   34202            34260 

我怎样才能在Python中执行此操作?另外,我应该使用Pandas'DateTimeIndex吗?一旦我绕过时间,我将计算每个时间戳之间的时间差,所以可能DateTimeIndex更合适。

2 个答案:

答案 0 :(得分:4)

有一系列round方法:

In [11]: df.Timestamp.round()
Out[11]: 
0    34201
1    34201
Name: Timestamp, dtype: float64

In [12]: df.Timestamp.round(1)
Out[12]: 
0    34201.0
1    34201.4
Name: Timestamp, dtype: float64

In [13]: df.Timestamp.round(-1)
Out[13]: 
0    34200
1    34200
Name: Timestamp, dtype: float64

我建议使用datetime64或DatetimeIndex而不是午夜的秒数...保持时间难以

获取正确日期时间列的一种简单方法:

In [21]: pd.Timestamp('2014-03-04') + df.Timestamp.apply(pd.offsets.Second)
Out[21]: 
0   2014-03-04 09:30:00
1   2014-03-04 09:30:01
Name: Timestamp, dtype: datetime64[ns]

答案 1 :(得分:2)

对于最近的秒,只需使用math.ceil,所以:

    import math
    second = math.ceil(timestamp)

对于最近的分钟,除以60.0,然后乘以60。