как создавать группы из групп положительных и отрицательных знаков

#python-3.x #pandas #numpy #pandas-groupby

#python-3.x #панды #numpy #pandas-groupby

Вопрос:

в фрейме данных есть столбец A, я хочу проверить, когда непрерывные значения являются отрицательной группой, а положительные значения — группой ,

 df=pd.DataFrame({'A':[0,-1203,-159,-35,0,0,0,0,205,-11,0,0,0,-145,-14,-12,0,182]}


Negative values group 1
0,-1203,-159,-35,0,0,0,0

positive values group 1
205

Negative values group 2
-11,0,0,0,-145,-14,-12,0
positive values group 2
182
  

Комментарии:

1. Вам нужен новый столбец? Какой ожидаемый результат?

Ответ №1:

Не уверен, что это то, что вы хотите, но вы можете попробовать это

 df['val'] = np.where(df['A'].gt(0).cumsum().diff().fillna(0).ne(0),'posgrp','ngrp' )
  

Вывод

 A       val
0       ngrp
-1203   ngrp
-159    ngrp
-35     ngrp
0       ngrp
0       ngrp
0       ngrp
0       ngrp
205     posgrp
111     posgrp
-11     ngrp
0       ngrp
0       ngrp
0       ngrp
-145    ngrp
-14     ngrp
-12     ngrp
0       ngrp
182     posgrp