拆分总时间(以秒为单位)并在 1 秒帧内填充列值的行
Splitting the total time (in seconds) and fill the rows of a column value in 1 second frame
我的数据框看起来像(start_time 和 stop_time 以秒为单位,然后是毫秒)
我的预期输出是这样的,
我不知道该如何处理。前向填充可能会填充 NaN 值。但是我需要根据各自的标签将总时间秒数划分并保存为1秒帧。我没有任何代码片段可以继续。我所做的就是将它保存在一个数据框中作为.,
df = pd.DataFrame(数据,列=['Labels', 'start_time', 'stop_time'])
谢谢你,非常感谢你的帮助。
>>> df2 = pd.DataFrame({
>>> "Labels" : df.apply(lambda x:[x.Labels]*(round(x.stop_time)-round(x.start_time)), axis=1).explode(),
... "start_time" : df.apply(lambda x:range(round(x.start_time), round(x.stop_time)), axis=1).explode()
... })
>>> df2['stop_time'] = df2.start_time + 1
>>> df2
Labels start_time stop_time
0 A 0 1
0 A 1 2
0 A 2 3
0 A 3 4
0 A 4 5
0 A 5 6
0 A 6 7
0 A 7 8
0 A 8 9
1 B 9 10
1 B 10 11
1 B 11 12
1 B 12 13
2 C 13 14
2 C 14 15
我的数据框看起来像(start_time 和 stop_time 以秒为单位,然后是毫秒)
我的预期输出是这样的,
我不知道该如何处理。前向填充可能会填充 NaN 值。但是我需要根据各自的标签将总时间秒数划分并保存为1秒帧。我没有任何代码片段可以继续。我所做的就是将它保存在一个数据框中作为.,
df = pd.DataFrame(数据,列=['Labels', 'start_time', 'stop_time'])
谢谢你,非常感谢你的帮助。
>>> df2 = pd.DataFrame({
>>> "Labels" : df.apply(lambda x:[x.Labels]*(round(x.stop_time)-round(x.start_time)), axis=1).explode(),
... "start_time" : df.apply(lambda x:range(round(x.start_time), round(x.stop_time)), axis=1).explode()
... })
>>> df2['stop_time'] = df2.start_time + 1
>>> df2
Labels start_time stop_time
0 A 0 1
0 A 1 2
0 A 2 3
0 A 3 4
0 A 4 5
0 A 5 6
0 A 6 7
0 A 7 8
0 A 8 9
1 B 9 10
1 B 10 11
1 B 11 12
1 B 12 13
2 C 13 14
2 C 14 15