Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从数据帧列中减去序列_Python_Pandas_Subtraction - Fatal编程技术网

Python 从数据帧列中减去序列

Python 从数据帧列中减去序列,python,pandas,subtraction,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

我正在从数据帧列中减去一个序列

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            
 ...
索引是相同的日期时间索引。我使用以下sytnax:

df['Daily Return'].subtract(s['Return'],axis=0)
我得到的结果是:

ValueError: cannot reindex from a duplicate axis

我做错了什么?

如果您正确定义了
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
谢谢大家

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


如果可以的话,我会投我自己的一票。

序列不能像那样被索引,如果你的序列被称为
s
,那么只要做减法(s,axis=0),如果我这样做,它超时并且不起作用。有趣的是,如果我这样做,
df.join(s)
if会给我每天重复的索引值。但是索引是相同的。!!这和你原来的问题不同。我们可以考虑解决ValueError问题,不是吗?<代码>不能从重复轴< /代码>中重新索引。这通常意味着在索引中有DUPES。也许可以检查
s.index.nunique()==len(s.index)
@randy-就是这样。这是一个糟糕的数据问题,与语法无关。非常感谢。在我的ide中,我的系列在这里指出它是一个“数据帧”。然而,根据我的经验,我认为列数据帧的行为就像一个系列。也许我还是做错了什么?如上所述,我尝试了将其作为一个系列(例如,
s
)和一个数据帧(例如,
s['Return']
)来处理的语法。无论哪种方式都失败了。