如果我有这样的桌子
A B C D E
row1 1 2 3 4 5
row2 5 6 7 8 9
我想计算row3,因为row1移位(1,轴= 1)+ row2 - row3中的值移位(1,轴= 1)[这是先前计算的价格,左边的单元格]它将是相同的在Excel中应用以下公式
A3 = A2
B3 = A1 + B2 - A3
C3 = B2 + C2 - B3
[and so on]
结果必须在一个操作中计算,输出应该像这样:
A B C D E
row1 1 2 3 4 5
row2 5 6 7 8 9
row3 5 2 7 4 9
正如评论中提到的Arpit,您可以使用for
循环和iloc
来实现您的需求:
df = pd.read_csv(pd.compat.StringIO('''A B C D E
1 2 3 4 5
5 6 7 8 9'''),sep='\s+')
df.loc[2,'A'] = 5
for i in range(1,len(df.columns)):
df.iloc[2,i] = df.iloc[0,i-1] + df.iloc[1,i] - df.iloc[2,i-1]
输出:
In [43]: df
Out[43]:
A B C D E
0 1.0 2.0 3.0 4.0 5.0
1 5.0 6.0 7.0 8.0 9.0
2 5.0 2.0 7.0 4.0 9.0