pandas,是否会移位(1)给出数据框的下一个单元格?

时间:2018-02-03 21:26:45

标签: python pandas dataframe

我有一个数据框,我试图计算每日回报率&试图了解熊猫移位功能。

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?

1 个答案:

答案 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