使用numpy / pandas按时间戳合并时间序列数据

时间:2015-08-25 22:19:13

标签: python numpy pandas

我将来自三个完全不同的传感器源的时间序列数据作为CSV文件,并希望将它们组合成一个大的CSV文件。 我已经设法使用numpy的genfromtxt将它们读成numpy,但我不知道该怎么做。

基本上,我所拥有的是这样的:

表1:

timestamp    val_a   val_b   val_c

表2:

timestamp    val_d   val_e   val_f   val_g

表3:

timestamp    val_h   val_i

所有时间戳都是UNIX毫秒时间戳,如numpy.uint64。

我想要的是:

timestamp    val_a   val_b   val_c   val_d   val_e   val_f   val_g   val_h   val_i

...所有数据按时间戳组合和排序。三个表中的每一个都已按时间戳排序。 由于数据来自不同的来源,因此无法保证表1中的时间戳也将在表2或表3中,反之亦然。在这种情况下,空值应标记为N / A.

到目前为止,我已尝试使用pandas转换数据,如下所示:

df_sensor1 = pd.DataFrame(numpy_arr_sens1)
df_sensor2 = pd.DataFrame(numpy_arr_sens2)
df_sensor3 = pd.DataFrame(numpy_arr_sens3)

然后尝试使用pandas.DataFrame.merge,但我很确定不会为我现在尝试做的事情而努力。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:8)

我认为你可以简单地

  • timestamp定义为每个index的{​​{1}}(使用DataFrame
  • 使用set_index将其与join方法
  • 合并
  • Optionnaly将'outer'转换为timestamp

这就是它的样子。

datetime

result