需要添加数学公式来根据下面的行计算结果,一直到数据框的顶部
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 列中的底部/最后一个 .loc 单元格从 C 列中的倒数第二个单元格开始进行计算。计算完第二个单元格后,上面的单元格将在其下面的单元格上连续计算滚动所有到达数据框顶部的方式
最佳答案
您可以尝试使用 for 循环
向后遍历 DataFrame
并使用 lock< 更新
:"C"
的值
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
关于python - pandas dataframe 将底行乘以/公式化到顶行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55654603/