我有一个名为 _df
的数据框,其 len
为 3.7M,有两个 pandas.Timestamp
列 timestamp
> 和lead_timestamp
。我想添加一个新列 diff_timestamp
作为两列的差异(以秒为单位)。
以下代码片段
_df["diff_timestamp"] = _df.timestamp - _df.lead_timestamp
花费不到 0.1 秒。
但是当我将其修改如下时:
_df["diff_timestamp"] = (_df.timestamp - _df.lead_timestamp).map(lambda x: x.seconds)
需要超过 25 秒,大约长 300 倍。
有没有更有效的方法?
最佳答案
_df["diff_timestamp"] = (_df.timestamp - _df.lead_timestamp).dt.total_seconds()
另一个想法:
_df["diff_timestamp"] = (_df.timestamp - _df.lead_timestamp) / np.timedelta64(1, 's')
关于python - pandas.Timedelta 转换为 float 秒太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65336981/