我有一个数据框,我试图计算每日回报率&试图了解熊猫移位功能。
frame = pd.read_csv('Correlation.csv')
Daily_Returns = frame['PG']/frame['PG'].shift(1)-1
Daily_Returns = (Selling_Price/Buying_Price)-1
观察:
2/1/2000 30.855925
2/2/2000 30.584587
2/3/2000 30.332621
2/4/2000 29.382908
2/7/2000 28.917734
2/8/2000 29.692999
2/9/2000 29.150326
我的问题是,.shift(1)给出了应用移位的任何特定单元格的下一个单元格或前一个单元格?我打电话给.shift(1)时,我会在2000年2月2日说,它会返回2/1/2000还是2/3/2000?
答案 0 :(得分:0)
虽然在.shift
文档中没有明确地指出负整数的处理,但负指数通常意味着从可迭代的末尾开始的偏移。这是编程中的一般概念:
['a', 'b', 'c'][-1] == 'c' == ['a', 'b', 'c'][2] # True
因此,在这种情况下,负整数将向上移动Series / DataFrame中的数据,正整数将向下移动Series / DataFrame中的数据。
s = pd.Series(list('abc'))
s.shift(1)
返回
0 NaN
1 a
2 b
dtype: object
和
s.shift(-1)
返回
0 b
1 c
2 NaN
dtype: object