【发布时间】:2019-09-06 14:28:49
【问题描述】:
我有一个包含 38 个时间序列的 pandas 数据框。每个时间序列从 0 秒开始,在 1 秒结束,时间序列在 0 到 1 之间的秒数列是我对每个时间序列的开始位置和结束位置的唯一提示。
我想将原来的 df int 38 个数据帧拆分。
我想我可以简单地遍历行并执行检查,直到值达到 1s 然后拆分,但我想知道是否有更智能和最快的方法来做到这一点?在某个时候,我将拥有 38.000 个时间序列......
数据框看起来像:
行 ¦ var1 ¦ var2 ¦... ¦ 时间
第 1 行 ¦ x ¦ y ¦ ... ¦ 0.0
.
第 100 行 ¦ x100 ¦ y100 ¦ ... ¦ 1.0
第 101 行 ¦ x101 ¦ y101 ¦ ... ¦ 0.0
.
我想拆分第 100 行中的 df,这样第 101 行是新的不同数据帧的第一行。我会在给定的 df 内重复这个过程 38 次。
我的问题与 [1] 不同,因为在这种情况下,该人希望按相同的日期值分组,而在我的情况下,我不想按相同的值分组。
【问题讨论】:
-
试试
df.groupby(df.time.eq(1).shift().fillna(0).cumsum()) -
@abolotnov 我会说这不是重复的,因为那个人想按同一日期分组。我不想按列的相同值进行分组。
标签: python pandas time-series