我正在处理一个非常大的捐款数据库,其中包含与捐赠ID、通道ID、金额相关的列,例如:
TRANSACTION_ID BACK_REFERENCE_TRAN_ID_NUMBER CONTRIBUTION_AMOUNT
0 VR0P4H2SEZ1 0 100
1 VR0P4H3X770 0 2700
2 VR0P4GY6QV1 0 500
3 VR0P4H3X720 0 1700
4 VR0P4GYHHA0 VR0P4GYHHA0E 200
我需要做的是识别所有TRANSACTION_ID对应任何BACK_REFERENCE_TRAN_ID_NUMBER的行。我的现有代码虽然有点笨拙,但是如下所示:
is_from_conduit = df[df.BACK_REFERENCE_TRAN_ID_NUMBER != "0"].BACK_REFERENCE_TRAN_ID_NUMBER.tolist()
df['CONDUIT_FOR_OTHER_DONATION'] = 0
for row in df.index:
if df['TRANSACTION_ID'][row] in is_from_conduit:
df['CONDUIT_FOR_OTHER_DONATION'][row] = 1
else:
df['CONDUIT_FOR_OTHER_DONATION'][row] = 0
然而,在非常大的数据集中,如果有大量的通道捐赠,这将需要很长时间。我知道一定有更简单的方法,但显然我无法想出如何表达来找出可能的解决方案。
df.iloc[4, 1]
后面多了一个'E'
是有原因的吗? - AlexCONDUIT_FOR_OTHER_DONATION
只有0
。 - jrjc