gpt4 book ai didi

python - 插入时间序列并重新采样/旋转。如何得到预期的输出

转载 作者:行者123 更新时间:2023-12-01 06:23:42 24 4
gpt4 key购买 nike

我有一个看起来像这样的 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]

关于python - 插入时间序列并重新采样/旋转。如何得到预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60268759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com