数据框以特定方式循环

时间:2020-08-16 10:22:14

标签: python pandas numpy

我有一些数据框对象:

df.head()

A   B   C
0   7   7     
1   3   6     
2   5   5  
3   2   7     
4   4   3  

我想比较例如 n A B ,同时还要使用 C > n-1 创建一个新行,所以说D = A n * B n + C n-1

起初,我使用了通用的python循环,但是我很快意识到对于大型数据集,这非常慢。然后,我开始研究numpy向量化(非常非常快),但我想不出一种获取先前条目的方法。

在保持其美观又快速的同时,我还有什么其他选择?

1 个答案:

答案 0 :(得分:4)

使用Series.shift

的另一种解决方案
df['D'] = df.A * df.B + df.C.shift(1, fill_value = 0)

   A  B  C   D
0  0  7  7   0
1  1  3  6  10
2  2  5  5  16
3  3  2  7  11
4  4  4  3  23