#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