首页 > 解决方案 > 熊猫问题从数据框列中减去一个系列

问题描述

我正在从数据框列中减去一个系列。

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

我究竟做错了什么?

标签: pythonpandassubtraction

解决方案


如果您已正确定义dfand ,您的逻辑就可以正常工作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

推荐阅读