将一个时间序列插入到自定义时间序列中

时间:2016-11-14 16:27:55

标签: python pandas

目标:将一个时间序列插入另一个自定义时间序列。

我检查了堆栈溢出并找到了以下solution。但是,我收到以下错误:

 ValueError: cannot reindex from a duplicate axis

问题:我是否需要使用datetimeindex或Unix时间戳也可以使用?因为前者需要我转换为datetimeindex,然后插值,并转换回unixtimestamp。这些是多个步骤,我想避免。

这就是我所拥有的:

我想插入的时间序列:

In [111]: p.head()
Out[111]:
       Timestamp  Pressure  Quality
0  1477294046400    101155        3
1  1477294046901    101152        3
2  1477294047421    101150        3
3  1477294047922    101151        3
4  1477294048425    101151        3

自定义时间序列:

In [112]: a.head()
Out[112]:
            Time
0  1477294032458
1  1477294032463
2  1477294032468
3  1477294032473
4  1477294032478

按照上述链接中的解决方案,我执行了以下操作:

pressure = pd.concat([p, a]).sort_index().interpolate().reindex(a.index)

但是我收到了如上所示的错误。

1 个答案:

答案 0 :(得分:2)

您没有提供足够的信息,因此我创建了自己的信息。您必须注意并根据自己的需要进行调整。

这个答案是针对this question

设置

p = pd.DataFrame(
    dict(
        Pressure=[101155, 101152, 101150, 101151, 101151],
        Quality=[3, 3, 3, 3, 3]
    ),
    pd.Index([0, 10, 20, 30, 40], name='Timestamp')
)

a = [5, 12, 18, 24, 33, 35, 37]

一般策略

  • 确保时间戳的索引为p
  • 联合p.index(您的时间戳)和新时间列表a
  • 与工会重新索引。 NaN将出现在新的'指数值。
  • 进行插值时,请使用method='index' DOCUMENTATION

代码

idx = p.index.union(a)
p.reindex(idx).interpolate('index')

p

enter image description here

idx = p.index.union(a)
p.reindex(idx).interpolate('index')

enter image description here