我要从数据框列中减去一系列。
df
daily_return daily_weight
2003-01-01T 1.2 62
2003-01-02T 1.3 63
2003-01-03T 1.1 64
...
和系列
Return
2003-01-01T 1.2
2003-01-02T 1.3
2003-01-03T 1.1
...
索引是相同的日期时间索引。我使用以下语法:
df['Daily Return'].subtract(s['Return'],axis=0)
我得到的结果是:
ValueError: cannot reindex from a duplicate axis
我在做什么错了?
答案 0 :(得分:1)
如果您正确定义了df
和s
,您的逻辑就很好了
idx = pd.Index(['2003-01-01T', '2003-01-02T', '2003-01-03T'])
df = pd.DataFrame.from_dict({'Daily Return': [1.2, 1.3, 1.1],
'daily_weight': [62, 63, 64]})
s = pd.DataFrame.from_dict({'Return': [1.2, 1.3, 1.1]})
df.index, s.index = idx, idx
print(df['Daily Return'].subtract(s['Return'],axis=0))
2003-01-01T 0.0
2003-01-02T 0.0
2003-01-03T 0.0
dtype: float64
答案 1 :(得分:0)
谢谢大家。
这实际上是一个数据问题。数据正在以某种方式进行转换,并且一个索引中的索引在导入时被破坏。代码很好。
如果可以的话,我将自己投反对票。