目标:将一个时间序列插入另一个自定义时间序列。
我检查了堆栈溢出并找到了以下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)
但是我收到了如上所示的错误。
答案 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
method='index'
DOCUMENTATION 代码
idx = p.index.union(a)
p.reindex(idx).interpolate('index')
p
idx = p.index.union(a)
p.reindex(idx).interpolate('index')