Python 如何将一个值除以dataframe中前一行中的值?

Python 如何将一个值除以dataframe中前一行中的值?,python,pandas,Python,Pandas,我有一个由10个观察值组成的数据框架。我想把第1行除以第2行,第2行除以第3行,第3行除以第4行,等等。当我到达第10行时,我想把第10行除以第1行 以下是一些示例代码: import pandas as pd dict1 = {'group':[1,2,3,4,5,6,7,8,9,10] ,'value': [.35,.41,.40,.60,.36,.55,.49,.57,.57,.52]} df = pd.DataFrame(dict1) 以下是我正在寻找的结果: dict

我有一个由10个观察值组成的数据框架。我想把第1行除以第2行,第2行除以第3行,第3行除以第4行,等等。当我到达第10行时,我想把第10行除以第1行

以下是一些示例代码:

import pandas as pd
dict1 = {'group':[1,2,3,4,5,6,7,8,9,10]
        ,'value': [.35,.41,.40,.60,.36,.55,.49,.57,.57,.52]}
df = pd.DataFrame(dict1)
以下是我正在寻找的结果:

dict1 = {'group':[1,2,3,4,5,6,7,8,9,10]
        ,'value': [.35,.41,.40,.60,.36,.55,.49,.57,.57,.52]
        , 'target': [.854,1.025,.667,1.667,.655,1.122,.860,1,1.096,.673]}
df = pd.DataFrame(dict1)

可以使用shift键访问列的上一个/下一个元素, 但是这里最后一个元素有一个例外(除以第一行)

所以在这里你可以使用名为roll的Numpy函数,执行“旋转” 或列的循环移动

要执行操作,请运行:

df['target'] = df.value / np.roll(df.value, shift=-1)