获取“ValueError:无法从重复轴重新索引”,但轴没有重复

时间:2016-09-29 00:38:12

标签: python datetime dataframe time-series reindex

我正在学习python并遇到一个问题。任何帮助表示赞赏。 所以我试图在熊猫中将一个时间序列插入到另一个时间序列中。为此,我需要重新索引连接的数据帧。

df4=pd.concat([df1['mid_price'].copy(),df3]).sort_index().fillna(method='ffill')
df4 = pd.DataFrame(df4, index=df1.index)

但是我收到以下关于无法从重复轴重新索引的错误:

> Traceback (most recent call last):
File "<ipython-input-622-27eed25ece8c>", line 1, in <module>
df4 = pd.DataFrame(df4, index=df1.index)
File "/home/student/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 222, in __init__
dtype=dtype, copy=copy)

File "/home/student/anaconda3/lib/python3.5/site-packages/pandas/core/generic.py", line 130, in _init_mgr
copy=False)

File "/home/student/anaconda3/lib/python3.5/site-packages/pandas/core/internals.py", line 3558, in reindex_axis
fill_value=fill_value, copy=copy)

File "/home/student/anaconda3/lib/python3.5/site-packages/pandas/core/internals.py", line 3586, in reindex_indexer
self.axes[axis]._can_reindex(indexer)

File "/home/student/anaconda3/lib/python3.5/site-packages/pandas/indexes/base.py", line 2293, in _can_reindex
 raise ValueError("cannot reindex from a duplicate axis"
 ValueError: cannot reindex from a duplicate axis

我已检查过我的索引没有重复项:

df1.index.is_unique
Out[623]: True

我还检查了索引是DatetimeIndex

In [624]: type(df1.index)
Out[624]: pandas.tseries.index.DatetimeIndex
In [625]: type(df4.index)
Out[625]: pandas.tseries.index.DatetimeIndex

我做错了什么吗?有什么建议?非常感谢你。

更新: 我找到了解决办法,但我仍然希望弄清楚发生了什么以及我的原始代码有什么问题。 我的解决方法是: 1.仅填充df3列的nan值。 2.使用df1列非空来从df4中提取相关行:

df4 = df4[df4.ix[:,0].notnull()]

不优雅,但现在有效。

0 个答案:

没有答案