python - pandas.Timedelta 转换为 float 秒太慢

标签 python pandas dataframe

我有一个名为 _df 的数据框,其 len 为 3.7M,有两个 pandas.Timestamptimestamp > 和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 倍。

有没有更有效的方法?

最佳答案

使用Series.dt.total_seconds :

_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/

相关文章:

python - Beaker 中数据库和 sql 后端之间的区别?

python - 如何有效地从大小为 n 的列表中获取大小为 {n, n-1,n-2, ... 1} 的所有排列?

r - 基于匹配每个数据帧中的两个可交换列合并两个数据帧

python - 我有一个形状为 (601, 2522) 的数据框。我希望索引从数据帧的第二行开始

python - 如何使用python将F2键发送到远程主机

python - 在循环中选择数据框的列

Pandas - 检查不同列中的字​​符串匹配,列值以逗号分隔

python , Pandas : Filter rows of data frame based on function

python - 如何将 MonthYear 字符串转换为日期时间 Pandas?

python - 懒惰地从 PostgreSQL/Cassandra 创建 Dask DataFrame