我在数据框中有2列(日期和sell_price)。我的预期输出是这样的。我想在数据框中再添加一个列为利润的列,该列需要根据当前的sell_price-第一个卖出价格(星号)来计算
date sell_price profit(needs to be added)
0 2018-10-26 **21.20** NaN
1 2018-10-29 15.15 -6.05
2 2018-10-30 15.65 -5.55
3 2018-10-31 0.15 -21.05
4 2018-11-01 5.20 -16.00
我知道熊猫的差异会导致连续行之间的差异。如何通过diff或其他任何对熊猫的函数来达到预期的o / p?
答案 0 :(得分:4)
对于像Index
这样的普通DatetimeIndex
,请在iloc
中使用iat
,但它仅适用于职位,因此必要时get_loc
:
pos = df.columns.get_loc('sell_price')
df['profit'] = df.iloc[1:, pos] - df.iat[0, pos]
df['profit'] = df.loc[1:, 'sell_price'] - df.at[0, 'sell_price']
print (df)
date sell_price profit
0 2018-10-26 21.20 NaN
1 2018-10-29 15.15 -6.05
2 2018-10-30 15.65 -5.55
3 2018-10-31 0.15 -21.05
4 2018-11-01 5.20 -16.00