python - pandas dataframe 将底行乘以/公式化到顶行

标签 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) + 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/

相关文章:

python - 如何在隐式字符串连接中处理 f 字符串?

python - 使用 Bokeh 图在多列上设置图例

python - 替换 Pandas 列中数据框文本中的特定字符串

c++ - 我怎么能在这个简单的 C++ 游戏中转到另一个 "map"?

python - Kivy 声音不循环

python - Eclipse/PyDev 覆盖@sys,找不到 Python 64 位解释器

python - 是否建议使用相同的 torch Dataset 类进行训练和预测?

python - 合并两个具有复杂条件的 pandas 数据框

python - pandas 在数据帧之间交换行

java - 如何在 Java 8 中循环遍历字节数组?