0

我试图了解这样做的最佳方法是什么:

基本上我会有一堆 Android/iOS 用户在他们的手机上记录传感器数据,除了每个用户都有自己的时间戳,具体取决于人们何时启动应用程序等。假设我有两个用户:

User 1: (5,45), (6,34), (8,32)
User 2: (5,35), (7,32), (9,32)

格式是(时间 t 和一些任意值)。

同步这两个数据集的最佳方法是什么?我是否必须编写一个算法,然后返回并在用户 2 上说,插入以下条目 (6,35)。所以最终新数据看起来像:

User 1: (5,45), (6,34), (7,34), (8,32), (9,32)
User 2: (5,35), (6,35), (7,32), (8,32), (9,32)

不过,这可能是数据密集型的,因为我预计会有大约 300 个用户,每个用户将有大约 36,000 个数据条目。任何建议都将不胜感激 - 我也可以在应用程序方面做一些可以帮助的事情。

我相信当我拥有所有数据时,我将不得不做这样的事情——但由于这是一个积极发展的项目,我想我应该先得到一些建议。

4

1 回答 1

2

您可以DataFrame从每个用户的数据创建一个。然后将它们全部存储在一个Panel. Pandas 将根据时间戳将它们全部排列起来,您可以使用前向填充方法ffill来传播值:

In [62]: df1 = DataFrame([45,34,32], index=[5,6,8], columns=['value'])

In [63]: df2 = DataFrame([35,32,32], index=[5,7,9], columns=['value'])

In [64]: p = Panel({'user1': df1, 'user2': df2})

In [75]: p.ffill().to_frame().unstack()
Out[75]:
       user1  user2
minor  value  value
major
5         45     35
6         34     35
7         34     32
8         32     32
9         32     32

或者,您可以只使用 Series 和 DataFrames 来做同样的事情。我想这取决于你想用它做什么:

In [78]: s1 = Series([45,34,32], index=[5,6,8])

In [79]: s2 = Series([35,32,32], index=[5,7,9])

In [80]: df = DataFrame([s1,s2])

In [81]: df
Out[81]:
    5   6   7   8   9
0  45  34 NaN  32 NaN
1  35 NaN  32 NaN  32

In [82]: df = DataFrame([s1,s2]).T

In [83]: df
Out[83]:
    0   1
5  45  35
6  34 NaN
7 NaN  32
8  32 NaN
9 NaN  32

In [84]: df.ffill()
Out[84]:
    0   1
5  45  35
6  34  35
7  34  32
8  32  32
9  32  32
于 2012-12-29T08:11:53.420 回答