以下数据框包含Price和天数据:
Date Price Days
1999-01-06 1.336646 NaN
1999-01-07 1.440696 NaN
1999-01-08 1.440696 NaN
1999-01-11 1.468710 2.0
1999-01-12 1.476714 1.0
我的预期输出是为第三列提供网络' ,这是pct_change的价格,但有相对于' Days'专栏。
例如,第一个' Net'将是df['Price'].pct_change(2)
,第二个是df['Price'].pct_change(1)
等。
有没有办法在当前列计算中应用lambda来包含另一列的值?
答案 0 :(得分:0)
有点脏,但你可以这样做:
df["pct"] = np.nan
for (i,row) in df.iterrows():
if not pd.isnull(row.Days):
try:
pct = (row.Price - df.iloc[int(i-row.Days)].Price) / df.iloc[int(i-row.Days)].Price
df.ix[i,"pct"] = pct
except:
pass