我有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)
答案 0 :(得分:0)
您可以使用 shift 访问列的上一个/下一个元素, 但是最后一个元素例外(除以第一行)。
因此,您可以在此处使用名为 roll 的 Numpy 函数,执行“旋转” 或循环移列。
要执行操作,请运行:
df['target'] = df.value / np.roll(df.value, shift=-1)