<p>我们可以尝试使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.GroupBy.cumcount.html" rel="nofollow noreferrer">^{<cd1>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.cat.html" rel="nofollow noreferrer">^{<cd2>}</a></p>
<pre><code>blocks = df['purchaseType'].eq('FIRST').cumsum()
fill_values = df['purchaseType'].str.cat(df.groupby(blocks)
.cumcount().astype(str),
sep='')
df.loc[df['purchaseType'].eq('DELIVERY'), 'purchaseType'] = fill_values
print(df)
# Region Client purchaseType price
# 0 NY A FIRST 10
# 1 NY A DELIVERY1 20
# 2 NY A DELIVERY2 30
# 3 NY A LAST 25
# 4 NY B FIRST 15
# 5 NY B DELIVERY1 10
# 6 NY B LAST 20
# 7 FL A FIRST 15
# 8 FL A DELIVERY1 10
# 9 NY A DELIVERY2 12
# 10 NY A DELIVERY3 25
# 11 NY A LAST 20
</code></pre>