如何在pandas数据帧中将行前的值除以一个值?

时间:2020-08-06 16:37:48

标签: 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)

这是我要寻找的结果:

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)

1 个答案:

答案 0 :(得分:0)

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

因此,您可以在此处使用名为 roll Numpy 函数,执行“旋转” 或循环移列。

要执行操作,请运行:

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