Сегмент / профилирование в Python - PullRequest
0 голосов
/ 01 октября 2018

Помогите пожалуйста !!

Я пытался создать столбец 'Сегмент' на основе условия:

 if 'Pro_vol' >1 and 'Cost' >=43 then append 1 
 if 'Pro_vol' ==1 and 'Cost' >=33 then append 1 
 or append 0

Ниже приведен код для данных:

df = pd.DataFrame({'ID':[1,2,3,4,5,6,7,8,9,10],
            'Pro_vol':[1,2,3,1,5,1,2,1,4,5],
              'Cost' : [12.34,13.55,34.00, 19.15,13.22,22.34,33.55,44.00, 29.15,53.22]})

Я попробовал код:

Segment=[]

for i in df['Pro_vol']:
if i >1:
    Segment.append(1)
    for j in df['Cost']:
        if j>=43:
            Segment.append(1)
elif i==1:
    Segment.append(1)
elif j>=33:
    Segment.append(1)
else:
    Segment.append(0)

df['Segment']=Segment

И он выдавал мне ошибку:

ValueError: Length of values does not match length of index

Я не знаю другого способа попытаться найти ответ !!

1 Ответ

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

Вы можете рассмотреть np.where

np.where(((df.Cost>=33)&(df.Pro_vol==1))|((df.Cost>=43)&(df.Pro_vol>1)),1,0)
Out[538]: array([0, 0, 0, 0, 0, 0, 0, 1, 0, 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...