【发布时间】:2019-06-11 16:42:24
【问题描述】:
我有以下数据集:
data = {
'date': ['1/1/2019', '1/2/2019', '1/3/2019', '1/4/2019', '1/1/2019', '1/2/2019', '1/3/2019', '1/4/2019'],
'account_id': [1, 1, 1, 1, 2, 2, 2, 2],
'value_1': [1, 2, 3, 4, 5, 6, 7, 8],
'value_2': [1, 3, 6, 9, 10, 12, 14, 16]
}
df = pd.DataFrame(data,index = data['date']).drop('date', 1)
df
我需要将值 1 和值 2 向前推算 30 天。
我遇到了Extrapolate Pandas DataFrame。如果日期列中没有重复的条目,它会很好地工作。
我想过使用这种类型的东西,但我不明白如何将 v 添加到函数中:
def extrapolation(df):
extend = 1
y = pd.DataFrame(
data=df,
index=pd.date_range(
start=df.index[0],
periods=len(df.index) + extend
)
)
#then, the extrapolation piece
df_out=df.head(0).copy()
for k,v in df.groupby('account_id'):
df_out=pd.concat([df_out,extrapolation(df)])
【问题讨论】:
-
请将示例数据包含为文本而非图片,请参阅this。
-
@QuangHoang,已更正
-
还有一件事,您想如何推断每个 id 的每个值?线性?二次、三次等......
-
线性。我知道这有点幼稚,但我想从线性开始。