Python:精确到秒和分钟的整数时间

2024-06-11 07:34:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个DataFrame和一个Timestamp列,其中每个值都是从午夜开始的秒数,精度为纳秒。例如:

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更合适。


Tags: dataframepandas时间精度条目timestampsecond时间差
2条回答

在最近的一秒钟内,只需使用math.ceil,这样:

    import math
    second = math.ceil(timestamp)

最接近的一分钟,除以60.0,将其四舍五入,然后乘以60。

有一个序列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]

相关问题 更多 >