Python 从下一行到上一行的数据帧相乘/公式

Python 从下一行到上一行的数据帧相乘/公式,python,pandas,loops,Python,Pandas,Loops,需要添加数学公式来根据下面的行计算结果,一直到数据帧的顶部 import pandas as pd n = 2 df = pd.DataFrame({'A': [2, 4, 8, 7, 1, 8, 2, 4],'B': [10, 2, 1, 8, 2, 4, 8, 7]}) df.loc[7, 'C'] = df.loc[7, 'A'] print(df) 打印上述内容,然后阅读以下内容: 我想将C列中高于4.0的单元格(即C6单元格)设置为: ((4.0 (cell c7) * 2)

需要添加数学公式来根据下面的行计算结果,一直到数据帧的顶部

import pandas as pd

n = 2

df = pd.DataFrame({'A': [2, 4, 8, 7, 1, 8, 2, 4],'B': [10, 2, 1, 8, 2, 4, 8, 7]})

df.loc[7, 'C'] = df.loc[7, 'A']

print(df)
打印上述内容,然后阅读以下内容:

我想将C列中高于4.0的单元格(即C6单元格)设置为:

((4.0 (cell c7) * 2) + cellA6 (ie 2.0)/n) = 5
那么单元格C5如下所示:

((5.0 (cell c6) * 2) + cellA5 (ie 8.0)/n) = 9


因此,我需要根据C列中的bottom/last.loc单元格,从C列中的倒数第二个单元格开始计算。在计算完第二个单元格后,上面的单元格在其下面的单元格上连续计算,一直滚动到数据帧的顶部

您可以尝试在
数据帧
使用循环的
并使用
loc
更新
“C”
的值:

import pandas as pd

n = 2

df = pd.DataFrame({'A': [2, 4, 8, 7, 1, 8, 2, 4],'B': [10, 2, 1, 8, 2, 4, 8, 7]})

df.loc[7, 'C'] = df.loc[7, 'A']

print(df)
for idx in df.index[::-1][:-1]:
    df.loc[idx - 1, 'C'] = (df.loc[idx, 'C'] * 2 + df.loc[idx - 1, 'A']) / n

print(df)

   A   B     C
0  2  10  20.0
1  4   2  19.0
2  8   1  17.0
3  7   8  13.0
4  1   2   9.5
5  8   4   9.0
6  2   8   5.0
7  4   7   4.0

这应该是((4.0(CellC7)*2)+cellA6(ie 2.0)/n)=9?你是现代的英雄。这正是我需要的。非常感谢。这是我的第一个问题。我能给你评分吗,或者有没有给你评分的办法?很乐意帮助巴迪。接受答案是感激的:)谢谢