Pandas 从数据框列中减去序列的问题
Pandas Issue subtracting a series from a dataframe column
我正在从数据框列中减去一个系列。
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
我做错了什么?
你的逻辑工作正常如果你已经正确定义了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
谢谢大家。
其实是数据问题。数据以某种方式被转换,并且一个索引中的索引在导入时被损坏。代码很好。
如果可以的话,我会投反对票。
我正在从数据框列中减去一个系列。
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
我做错了什么?
你的逻辑工作正常如果你已经正确定义了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
谢谢大家。
其实是数据问题。数据以某种方式被转换,并且一个索引中的索引在导入时被损坏。代码很好。
如果可以的话,我会投反对票。