更新:
In [11]: df['ReceiptNumber'] = (df.assign(ReceiptNumber=np.where(pd.notnull(df.Tender),
....: df['Rcpt#'],
....: np.nan))['ReceiptNumber']
....: .fillna(method='pad')
....: .astype(int))
In [12]: df[['Rcpt#','Tender','ReceiptNumber']]
Out[12]:
Rcpt# Tender ReceiptNumber
0 32381 Cash 32381
1 18924 NaN 32381
2 505101 NaN 32381
3 32382 CrCd 32382
4 502201 NaN 32382
5 502201 NaN 32382
6 32383 Cash 32383
7 502201 NaN 32383
8 32384 CrCd 32384
9 505201 NaN 32384
10 505201 NaN 32384
11 32385 Cash 32385
12 18924 NaN 32385
13 32386 Cash 32386
14 18924 NaN 32386
老答案:
df.assign(ReceiptNumber=np.where(pd.notnull(df.Tender),
df['Rcpt#'],
np.nan))['ReceiptNumber']
.fillna(method='pad')
PS这个片段没有经过测试,因为你没有在文本表格中提供你的数据集,所以我无法复制&粘贴它