您将如何转换由连续事件组成的Pandas 数据帧:

start_time | end_time | value

1671221209   1671234984   2000
1671240425   1671241235   1000
1671289246   1671289600   133
...          ...          ...

变成这样的时光片:

     time |  value

1671221209    2000
1671234984    2000
1671234985    0
1671240424    0
1671240425    1000
1671241235    1000
1671241236    0
1671289245    0
1671289246    133
1671289600    133
1671289601    0
...           ...


推荐答案

您可以使用melt函数:

result = (
    df.melt(id_vars='value', var_name='time_type', value_name='time')
    .drop(columns=['time_type'])
    .sort_values(by='time')
    .reset_index(drop=True)
)

result = result[['time', 'value']]

Python相关问答推荐

使用FASTCGI在IIS上运行Django频道

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

Django mysql图标不适用于小 case

在Mac上安装ipython

如何使用它?

如果条件不满足,我如何获得掩码的第一个索引并获得None?

Pandas计数符合某些条件的特定列的数量

如何根据一列的值有条件地 Select 前N组?

使用Python和文件进行模糊输出

跳过嵌套JSON中的级别并转换为Pandas Rame

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

如何在海上配对图中使某些标记周围的黑色边框

以异步方式填充Pandas 数据帧

在用于Python的Bokeh包中设置按钮的样式

GPT python SDK引入了大量开销/错误超时

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

在Pandas 中以十六进制显示/打印列?

对于数组中的所有元素,Pandas SELECT行都具有值

VSCode Pylance假阳性(?)对ImportError的react

合并Pandas中的数据帧,但处理不存在的列