从数据框列中减去一个系列的 Pandas 问题

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


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

我究竟做错了什么?


慕虎7371278
浏览 143回答 2
2回答

慕斯王

如果您已正确定义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, idxprint(df['Daily Return'].subtract(s['Return'],axis=0))2003-01-01T    0.02003-01-02T    0.02003-01-03T    0.0dtype: float64

撒科打诨

谢谢大家。这实际上是一个数据问题。数据以某种方式被转换,一个索引中的索引在导入时被损坏。代码很好。如果可以的话,我会投票给自己一个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python