python - 需要使用其列将新的 DateTime 列添加到已经存在的数据框
问题描述
我有一个数据框,其中有我计算时间的距离和速度。现在我想添加一个列,我可以在其中为第一行提供一个固定的 DateTime 值,它会自动添加时间并使其成为 dateTime 列的下一个值
目前数据框看起来像:
x_coordinate y_coordinate z_coordinate speed Distance Time1
-22 -2.28 -0.1 300 1 0.2
-21 -2.28 -0.1 300 1 0.2
-20 -2.28 -0.1 300 1 0.2
-19 -2.28 -0.1 300 1 0.2
-18 -2.28 -0.1 300 1 0.2
-17 -2.28 -0.1 300 1 0.2
-16 -2.28 -0.1 300 1 0.2
-15 -2.28 -0.1 300 1 0.2
-14 -2.28 -0.1 300 1 0.2
-13.2674 -2.601 -0.1 300 0.7998398339667759 0.15996796679335518
-13.039 -3.5743 -0.1 300 0.9997396911196436 0.1999479382239287
-12.7392 -4.5281 -0.1 300 0.9998072214182092 0.19996144428364185
-12.3697 -5.4571 -0.1 300 0.9997856020167519 0.1999571204033504
时间以秒为单位,例如我以 300 毫米/秒的速度和距离 = 1 毫米计算的 0.2 秒。现在我想添加一个名为 DateTime 的列,它具有硬编码的第一个 Dattime 值和由时间列计算的连续值,例如
Datetime
2019-02-21 03:50:39.000 --> this is hardcoded
2019-02-21 03:50:39.200 --> this to be calculated by adding 0.2 seconds from row 1.
and so on
解决方案
尝试:
df['new_time'] = (pd.to_datetime('2019-02-21 03:50:39.000') +
pd.to_timedelta(df.Time1.shift().cumsum(), unit='s')
)
输出(df['new_time']
):
0 2019-02-21 03:50:39.000000000
1 2019-02-21 03:50:39.200000000
2 2019-02-21 03:50:39.400000000
3 2019-02-21 03:50:39.600000000
4 2019-02-21 03:50:39.800000000
5 2019-02-21 03:50:40.000000000
6 2019-02-21 03:50:40.200000000
7 2019-02-21 03:50:40.400000000
8 2019-02-21 03:50:40.600000000
9 2019-02-21 03:50:40.800000000
10 2019-02-21 03:50:40.959967967
11 2019-02-21 03:50:41.159915905
12 2019-02-21 03:50:41.359877349
Name: new_time, dtype: datetime64[ns]
推荐阅读
- javascript - 在插槽内的组件内使用组件...不知道怎么说
- android - 为什么 PackageInstaller.getSessionInfo 结果不一致?
- java - Web.xml 无效元素名称
- azure - Azure 和 OpenVPN 的 DNS 问题,不能通过 DNS 访问,只能通过 IP
- java - 如何将 Java 项目转换为 Maven 项目
- r - 是否有比 R 中的“extract_table”函数更整洁的方法?
- mongodb - 如何在 MongoDB 中找到平均分数?
- javascript - 在reactJS中转换嵌套的json对象?
- python - 为无向图中的所有节点存储 dist(node, start) 的算法
- javascript - 如何从节点 js 文件调用 vanilla JavaScript 函数