我正在做一个关于python的熊猫项目。我收到如下.csv文件作为输入:
Name Timestamp Data
A1 259 [1.1,1.0,0.1]
A1 260 [-0.1,1.2,0.3]
A1 261 [0.1,0.2,-0.3]
...
A1 14895 [1.4,0.3,1.8]
...
A2 278 [-1.1,1.2,0.4]
A2 353 [-0.1,1.2,0.3]
A2 409 [-0.1,1.2,0.3]
...
A2 14900 [-0.1,1.2,0.3]
...
A1140 107 [-0.5,-1.0,-1.0]
A1140 107 [0.6,0.1,0.3]
A1140 114 [-1.1,-1.2,0.3]
...
A1140 14995 [-1,1.2,0.4]
我有1140多个名字,每个名字都有成百上千的数据。 数据是以200Hz的频率记录的,我认为时间戳数字表示毫秒,尽管我不确定,但我无法访问这些信息。 我得重新采样到50赫兹的频率。在
我该怎么做?是否需要将时间戳转换为实际秒数,然后使用0.25s的.resample()
函数?我应该使用.groupby["Name"]
函数吗?
提前谢谢你!在
我不能完整地回答这个问题,因为即使你也不确定时间戳,但我会给你一些一般性的指导。
这里的数据称为面板数据,每个“名称”有许多不同的时间序列。
groupby(['Name']).apply(<func>)
确实是一种有用的方法,因为它允许分别操作每个不同的名称,允许您使用时间序列的更简单的数据类型 时间序列是以下类型的数据:如您所见,每个样本的采样时间是3分钟。我们可以调用
^{pr2}$resample()
并将其转换为10分钟,如下所示:请注意,您可以使用
.apply(<func>)
来选择下采样方法,而不是mean
。有关频率的更多信息,请考虑this问题。总之,最好的办法是找出时间戳的确切含义,将其转换为日期时间,然后使用其中之一
或者使用for循环遍历每个名称并分别对每个序列使用重采样。在
相关问题 更多 >
编程相关推荐