熊猫问题从数据框列中减去一系列

时间:2018-11-01 19:35:57

标签: python pandas subtraction

我要从数据框列中减去一系列。

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

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

如果您正确定义了dfs,您的逻辑就很好了

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)

谢谢大家。

这实际上是一个数据问题。数据正在以某种方式进行转换,并且一个索引中的索引在导入时被破坏。代码很好。

如果可以的话,我将自己投反对票。