У меня есть формула Excel:
=IF(L2="","",IF(COUNTIF($L$1:L2,L2)=1,"1YR",IF(COUNTIF($L$1:L2,L2)=2,"3YR","5YR")))
, которая переводится в программное обеспечение с пандами.Это countif
хитрый, так как только предыдущие ячейки над текущей ячейкой должны быть проверены и подсчитаны, если в ней встречается значение в текущей ячейке.
текущие решения:
df['year'] = np.where(df['company_id'] is None, None,
np.where(pd.cut(df['company_id'], df.loc[df['company_id']].index[0]).count() == 1, '1YR',
np.where(pd.cut(df.company_id, df.loc[df['company_id']].index[0]).count() == 2, '3YR', '5YR')))
желаемый вывод:
company_id year
48299 1YR
48752 1YR
48865 1YR
48299 3YR
49503 1YR
48299 5YR
49697 1YR
50267 1YR
50714 1YR
50714 3YR
51050 1YR
Использование функции pandas.cut
, но я не думаю, что это правильный путь для этого.Буду очень признателен за любую помощь в правильном направлении.