我正在尝试相互减去两个熊猫datetime系列DataFrame的值,其中两个DataFrames的索引都是datetime值。
所讨论的两个DataFrame具有相同数量的列。我想从第一个DataFrame的列的值中减去第二个DataFrame的列中的值,以使用第二个DataFrame中表示的列的新减去值创建一个新的DataFrame。
这是我的数据:
import pandas as pd
import numpy as np
import statsmodels.api as sm
In[]: y
Out[]: price
Date
2010-08-29 .0648
2010-08-30 .0751
...
2897 rows × 1 columns
In[]: type(y)
Out[]: pandas.core.frame.DataFrame
这些是我想从上面的y值中减去的值:
In[]: test = pd.DataFrame(est.predict(X))
test
Out[]: 0
2010-08-29 -5.851237
2010-08-30 -6.835347
2010-08-31 -9.949124
...
2897 rows × 1 columns
当我尝试对以上数据进行pd.sub()
操作时,我将返回一个包含NaN值的数据框,如下所示:
In[]: vals = y.sub(test)
vals
Out[]: price 0
Date
2010-08-29 NaN NaN
2010-08-30 NaN NaN
...
2897 rows × 2 columns
如何从两列中减去值以得到输出,例如下面的输出?
1 1.544535
2 -1.945362
3 -3.037018
4 0.882884
...
Name: newFrame, Length: 200, dtype: float64
答案 0 :(得分:2)
如果列具有相同的名称,则在两个数据框之间使用sub
将起作用,因此,例如,在此处,通过以下方式创建数据框test
:
test = pd.DataFrame(est.predict(X),columns=['price'])