【问题标题】:How can I divide one value by a value in the row before in pandas dataframe? [duplicate]如何在熊猫数据框中将一个值除以前一行中的值? [复制]
【发布时间】:2020-08-07 00:58:08
【问题描述】:

我有一个包含 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)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

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

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

    要执行您的操作,请运行:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-27
      • 2017-04-05
      • 2019-08-20
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 2020-07-23
      • 2017-11-01
      相关资源
      最近更新 更多