Создание нового столбца на основе значения существующего столбца - PullRequest
0 голосов
/ 16 мая 2018

Я хотел бы создать новый столбец (т.е. Winning_Time), как показано ниже в таблице.Все значения Time_diff в Match_state (выигрыш) будут сохранены в новом столбце Winning_Time .Остальные строки будут заполнены NaN или нулем.Как я могу это сделать?

gsm_id  Goal_Flag   Union_Level Team_SR Match_state   Time_diff           Wining_Time
2462796 First goal  Scored      Burnley  Winning    0 days 00:23:15.00   0 days 00:23:15.00
2462796 First goal  Conceded    Chelsea  Losing     0 days 00:23:15.00   NaN               
2462796 Other goals Scored      Burnley  Winning    0 days 00:15:20.00   0 days 00:15:20.00
2462796 Other goals Conceded    Chelsea  Losing     0 days 00:15:20.00   NaN
2462796 Other goals Scored      Burnley  Winning    0 days 00:03:34.00   0 days 00:03:34.00
2462796 Other goals Conceded    Chelsea  Losing     0 days 00:03:34.00   NaN
2462796 Other goals Scored      Chelsea  Losing     0 days 00:25:59.00   NaN
2462796 Other goals Conceded    Burnley  Winning    0 days 00:25:59.00   0 days 25:59.00
2462796 Last goal   Scored      Chelsea  Losing     0 days 00:19:11.00   NaN
2462796 Last goal   Conceded    Burnley  Winning    0 days 00:19:11.00   0 days 00:19:11.00
2462795 First goal  Scored      City     Winning    0 days 01:09:15.00   0 days 01:09:15.00 
2462795 First goal  Conceded    Brighton Losing     0 days 01:09:15.00   NaN
2462795 Last goal   Scored      City     Winning    0 days 00:05:21.00   0 days 00:05:21.00
2462795 Last goal   Conceded    Brighton Losing     0 days 00:05:21.00   NaN

Ваш совет очень ценится.

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете использовать numpy.where:

df['Winning_Time'] = np.where(df['Match_state'] == 'Winning', df['Time_diff'], np.nan)

Здесь numpy.where действует как векторизованный оператор if / else.

...