【发布时间】:2019-01-23 13:30:45
【问题描述】:
我正在尝试使用另一个文件中的类别对时间序列数据进行分类。 我上传了三个文件的图片,图片链接如下。
在过去的几天里,这一直是我生活的祸根。
我正在尝试创建用于行为识别的标记数据集。我有 2 个 CVS 文件来帮助我标记我的 CSV 文件。
1。数据
Here 是我需要标注的数据框的样子。数据每秒收集 40 次,持续数月。我也有不同个人的所有这些数据,所以我将它们分成每个人,然后分成 1000000 行的文件。 CSV 文件最初有日期、小时、秒、小数秒的单独列,但我将其制成一个时间戳,希望可以将其用作索引,然后执行以下操作:
df['Label'].iloc[starttime:endtime] = "Grooming"
我也在考虑使用 unix 时间戳作为索引。 timestamp的dtype是object。
标签中使用的文件
2。行为状态
Here 是带有每个标签的文件的样子。所以我们可以看到修饰从 11:26:48 开始,到 11:28:32 结束。然而,与动物未被观察时相比,数据存在很大差距。所以我们不能总是从下面获取结束时间。这就是我们最终的数据框的用武之地。
3。观察的开始和结束时间。
Here 是我们的最终数据框。我们有每个焦点观察的开始和结束时间,为我们的循环提供了边界。
我尝试过的。
我最初认为嵌套 for 循环将是可行的方法。从需要标记的文件中复制时间戳数据,制作一个标签列,然后将其设置为 0。
然后我打算从文件 3 中获取开始和结束时间,然后当文件 2 中的时间介于这些时间之间时,对于文件 2 中的每个活动,设置我的系列的标签列。
如上所示,我打算像索引一样使用时间,但是由于文件 1 是 40hz,我不能只在文件 2 和 3 的时间戳上附加一些零,因为每个开头可能没有读数第二。我知道pandas has a between time function,但这需要我将数据分成每天,我不知道该怎么做。
【问题讨论】:
标签: python pandas dataframe time-series dask