【问题标题】:pandas dataframe multiply / formula the bottom row to top row熊猫数据框乘法/公式底行到顶行
【发布时间】:2019-09-03 09:28:03
【问题描述】:

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

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 列中的倒数第二个单元格开始计算。计算第二个单元格后,将继续计算上面的单元格在其下面的单元格上滚动所有到数据框顶部的方式

【问题讨论】:

  • 这应该是 ((4.0 (cell c7) * 2) + cellA6 (ie 2.0)/n) = 9 ?

标签: python pandas loops


【解决方案1】:

您可以尝试使用for loop 遍历DataFrame 并使用loc 更新"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

【讨论】:

  • 你的现代英雄。它正是我所需要的。谢谢你。这是我的第一个问题。我可以给你打分吗?或者可以给你打分吗?
  • 很乐意帮助好友。接受答案表示赞赏:) 谢谢
猜你喜欢
  • 2017-09-28
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
相关资源
最近更新 更多