Python 如何将依赖于前一行的代码矢量化?

Python 如何将依赖于前一行的代码矢量化?,python,pandas,numpy-ndarray,Python,Pandas,Numpy Ndarray,我正在尝试将pandas中的代码片段矢量化: 我有一个如下生成的数据帧: 身份证 最 瓦尔斯 0 Q52EG 0 0 1. Q52EG 0 1. 2. Q52EG 1. 2. 3. Q52EG 1. 3. 4. Q52EG 1. 4. 5. Q8Q4 0 5. 6. Q8Q4 0 6. 7. Q8Q4 1. 7. 8. Q8Q4 1. 8. 9 QVIPW 1. 9 这类任务的两个关键功能是shift和ffill,适用于每组。关于这一具体问题: df2[“has_hist”]=df.groupb

我正在尝试将pandas中的代码片段矢量化:

我有一个如下生成的数据帧:

身份证 最 瓦尔斯 0 Q52EG 0 0 1. Q52EG 0 1. 2. Q52EG 1. 2. 3. Q52EG 1. 3. 4. Q52EG 1. 4. 5. Q8Q4 0 5. 6. Q8Q4 0 6. 7. Q8Q4 1. 7. 8. Q8Q4 1. 8. 9 QVIPW 1. 9
这类任务的两个关键功能是
shift
ffill
,适用于每组。关于这一具体问题:

df2[“has_hist”]=df.groupby(“ids”).ftest.shift()。其中(lambda s:s.eq(1))
df2[“has_hist”]=df2.groupby(“ids”).has_hist.ffill().fillna(0).astype(“int32”)
下面是一个带有
转换的变体
,但根据我的经验,它通常比“纯”操作慢:

df2=(
df
.groupby(“ids”)
.ftest.transform(
lambda s:(
s
.shift()
.式中(λt:t.eq(1))
.ffill()
.fillna(0)
.astype(“int32”)
)
)
)