Python: вопросы с несколькими условиями на столбцах панд - PullRequest
0 голосов
/ 05 октября 2018

У меня есть вопрос, касающийся нескольких условий на столбцах панд.У меня есть следующий фрейм данных:

    A   B   C
0   0   9   0
1   1   8   0
2   1   9   0
3   1   5   1
4   1   9   1
5   1   8   1
6   -1  9   0
7   -1  5   -1
8   -1  7   -1

Я пытаюсь добиться следующего:

1.) Если A> 0 и B <6, C должен стать 1 и сохранить этодо тех пор, пока A не изменится (B не может превысить 6) </p>

2.) Если A <0 и B <6 C должно стать -1, сохраняйте это, пока A не изменится (B не может превысить 6) </p>

Любые предложения, как это сделать без цикла?

Я борюсь с тем, как «запомнить» статус B, который был ниже 6 для текущего периода A = 1 или A = -1.

Спасибо за любые предложения

1 Ответ

0 голосов
/ 05 октября 2018

Используя np.select создайте столбец справки, когда вы удовлетворяете вашим условиям, тогда мы делаем groupby с bfill

s1=(df.A>0)&(df.B<6)
s2=(df.A<0)&(df.B<6)
df['v']=np.select([s1,s2],[1,-1])
df.v.replace(0,np.nan).groupby(df.A).ffill().fillna(0).astype(int)
Out[1023]: 
0    0
1    0
2    0
3    1
4    1
5    1
6    0
7   -1
8   -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...