密码
cond = df['Y/N'].eq('Y')
cond1 = cond.groupby(df['CUS_NAME']).cumsum().eq(1)
df['occur_date'] = df['BAS_DT'].where(cond & cond1)
df:
BAS_DT CUS_NAME Y/N cum_count occur_date
0 2023-01-02 A Y 1 2023-01-02
1 2023-01-03 A Y 2 NaN
2 2023-01-04 A Y 3 NaN
3 2023-01-02 B N 1 NaN
4 2023-01-03 B Y 2 2023-01-03
检查示例
import pandas as pd
import numpy as np
df = pd.DataFrame({'BAS_DT': ['2023-01-02', '2023-01-03', '2023-01-04', '2023-01-02', '2023-01-03', '2023-01-04'],
'CUS_NAME': ['A', 'A', 'A', 'B', 'B', 'B'],
'Y/N': ['Y', 'Y', 'Y', 'N', 'Y', 'N'],
'cum_count': [1, 2, 3, 1, 2, 3]})