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?你是现代的英雄。这正是我需要的。非常感谢。这是我的第一个问题。我能给你评分吗,或者有没有给你评分的办法?很乐意帮助巴迪。接受答案是感激的:)谢谢