【发布时间】:2019-01-12 06:55:45
【问题描述】:
我正在尝试将两个 pandas 日期时间序列 DataFrame 的值相减,其中两个 DataFrame 的索引都是日期时间值。
有问题的两个 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 值的 DataFrame:
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
【问题讨论】:
-
您是否尝试过重命名
test中的列(将列命名为y中的“价格”)? -
@Ben.T 我如何重命名日期时间数据帧中的列?
-
你可以在创建dataframe时做到
test如:test = pd.DataFrame(est.predict(X),columns=['price']) -
@Ben.T,就是这样。要将其标记为答案,以便我可以给您分数吗?
-
为什么不只减去列,而不是数据框?
df.price - test[0]。这将允许您更改test的结构并且不依赖于数据帧结构
标签: python pandas datetime dataframe machine-learning