【发布时间】:2017-03-28 08:47:50
【问题描述】:
目标:将一个时间序列插入另一个自定义时间序列。
我检查了堆栈溢出,发现以下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)
但我收到如上所示的错误。
【问题讨论】:
-
尝试将
Timestamp和Time分别设置为索引轴并进行插值,看看是否有效。 -
从字面上看,错误信息告诉你
pd.concat([p, a]).sort_index().interpolate() has duplicates in the index。问题是您真正希望索引是什么以及您要做什么? @NickilMaveli 的建议似乎是您的本意?可能您需要退后一步,考虑 concat/merge 步骤,并确保这是您想要的。 -
a中的所有时间都在p中的时间之前。这不是插值,而是反向外推。