python - 插值时间序列并重新采样/旋转。如何获得预期的输出
问题描述
我有一个看起来像这样的df:
Video | Start | End | Duration |
vid1 |2018-10-02 16:00:29 |2018-10-02 20:07:05 | 246 |
vid2 |2018-10-04 16:03:08 |2018-10-04 16:10:11 | 7 |
vid3 |2018-10-04 10:13:40 |2018-10-06 12:07:38 | 113 |
我想要做的是按开始列将数据帧重新采样 10 分钟,如果视频在该时间戳中持续,则分配 1,否则分配 0。所需的输出是:
Start | vid1 | vid2 | vid3 |
2018-10-02 16:00:00| 1 | 0 | 0 |
2018-10-02 16:10:00| 1 | 0 | 0 |
...
2018-10-04 16:10:00| 0 | 1 | 0 |
2018-10-04 16:20:00| 0 | 0 | 1 |
输出仅用于可视化输出,因此,它可能包含错误。
问题是我无法以某种方式重新采样数据帧以生成所需的交叉表输出。
解决方案
尝试这个:
df.apply(lambda x: pd.Series(x['Video'],
index=pd.date_range(x['Start'].floor('10T'),
x['End'].ceil('10T'),
freq='10T')), axis=1)\
.stack().str.get_dummies().reset_index(level=0, drop=True)
输出:
vid1 vid2 vid3
2018-10-02 16:00:00 1 0 0
2018-10-02 16:10:00 1 0 0
2018-10-02 16:20:00 1 0 0
2018-10-02 16:30:00 1 0 0
2018-10-02 16:40:00 1 0 0
... ... ... ...
2018-10-06 11:30:00 0 0 1
2018-10-06 11:40:00 0 0 1
2018-10-06 11:50:00 0 0 1
2018-10-06 12:00:00 0 0 1
2018-10-06 12:10:00 0 0 1
[330 rows x 3 columns]
推荐阅读
- c# - 仅使用名称和类型创建 SqlParameter(未分配值)
- c# - 使用 Microsoft.Owin 验证 SSL 证书
- apache-spark - 如何从 Spark 读取的文件中显示行号?
- node.js - 是什么导致此 Mocha 测试超时?
- c# - 使用 API v3 和 .Net 将 DWG 转换为 DXF
- swift - Xcode 调试器不显示某些变量的值,具体取决于范围
- html - 如何创建垂直/水平嵌套 CSS 菜单?
- c# - ASP.NET Core 如何传递 List
从视图到控制器 - typescript - 在本地引用 TypeScript dom lib 类型
- python - 在python中生成具有[0,1)中随机条目的矩阵