python - pandas.Timedelta 在浮点数中转换为秒太慢
问题描述
我有一个名为 的数据框,_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')
推荐阅读
- android - 如何获取上传文件的downlodURI
- javascript - 在 ngFOR 中显示/隐藏框
- trac - 在 jessie 上将 Trac 0.12 从 Debian wheezy 迁移到 Trac 1.0.2,包括所有插件
- python - 多个标签的Tensorflow Keras尺寸不等于错误
- c++ - C和C++中的内存管理有什么区别
- lua - LUA:通过变量查找特定表
- android-layout - Is there a way to stop CustomScrollView from automatically scrolling down when Keyboard is activated?
- php - 只为特定的 PHP 文件增加“post_max_size”和“upload_max_filesize”,而不是为整个服务器增加
- c - C中的递归函数,用于确定整数的数字是否按升序、降序或两者都不排序
- center - 如何使两个按钮居中对齐