Я хочу назначить метки 0/1 для панд datafrmae в соответствии со столбцами - PullRequest
1 голос
/ 27 сентября 2019

Я довольно новичок в python. Я пытаюсь назначить метки в панде dataframe. Вот так выглядит мой dataframe: final.head (3)

Match Team1 Team2 winner       
A       2     3      3             
B       1     2      1            
C       3     1      1   

Я хочу создать новый столбецкоторый показывает, кто выиграл матч. Как в случае, если Team1 выигрывает, игровой ярлык должен быть 0, а если Team2 выигрывает, игровой ярлык должен быть 1. Ожидаемый результат должен быть: -

Match Team1 Team2 winner label      
A       2     3      3     1        
B       1     2      1     0       
C       3     1      1     1       

Пожалуйста, скажите мне, как я долженпродолжить. Спасибо заранее.

Ответы [ 3 ]

2 голосов
/ 27 сентября 2019

Ваш лейбл, по сути, такой же, как победитель с Team2.Таким образом, вы можете сделать

final['label'] = final['winner'].eq(final['Team2']).astype(int)

Или, если вы настаивали на numpy, то в соответствии с вашей логикой:

final['label'] = np.where(final['Team1'].eq(final['winner']), 0, 1)
0 голосов
/ 27 сентября 2019

вы можете сделать это так же, используя где

df["label"] = np.where(df["winner"]==df["Team1"], 0, 1)
0 голосов
/ 27 сентября 2019
df.loc[(conditional), 'column_name'] = 'value'

Итак, для вас:

final.loc[(df['Team1']>df['Team2']), 'label'] = 'Team1 Won'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...