python-3.x - 如何将 datetime 列移动 -1 并用前两个值之间的差异填充 NaT?
问题描述
我有一个df
如下:
start values
0 2020-03-01 00:15:00 63.2
1 2020-03-01 00:30:00 61.0
2 2020-03-01 00:45:00 58.9
3 2020-03-01 01:00:00 57.0
4 2020-03-01 01:15:00 55.3
5 2020-03-01 01:30:00 53.7
我正在尝试创建一个名为的新列end
,为此我做了:
df['end'] = df['start'].shift(-1)
给出以下输出
start values end
0 2020-03-01 00:15:00 63.2 2020-03-01 00:30:00
1 2020-03-01 00:30:00 61.0 2020-03-01 00:45:00
2 2020-03-01 00:45:00 58.9 2020-03-01 01:00:00
3 2020-03-01 01:00:00 57.0 2020-03-01 01:15:00
4 2020-03-01 01:15:00 55.3 2020-03-01 01:30:00
5 2020-03-01 01:30:00 53.7 NaT
我试图NaT
用前两个值之间的差异来填充,即NaT
应该是
2020-03-01 01:45:00 (2020-03-01 01:30:00 + 15 mins (2020-03-01 01:30:00-2020-03-01 01:15:00))
我试过:
df['end'] = df['start'].shift(-1).diff().ffill()
但它给了我以下错误:
'TimedeltaProperties' 对象没有属性 'strftime'
我在做什么错?
解决方案
df["end"] = df.start.shift(-1).fillna(df.start + df.start.diff())
推荐阅读
- c# - Unity 实例化并添加对原始游戏对象的引用
- python - numpy 中列表的平均值
- tensorflow - Tensorflow 1.x 如何遍历给定张量的计算图?
- customization - Acumatica:定制项目之间的冲突
- javascript - 从单独的文件中调用另一个常量
- python - 与 Python dict 的组合 sum
- r - 交叉引用 bookdown::html_document2 不起作用
- python - 训练准确度提高但验证准确度保持在 0.5,并且模型为每个验证样本预测几乎相同的类别
- python - 如何使用“入口”点将数据输入到 sqlite 数据库?
- javascript - 如何进行高效的客户端认证?