Уникальные значения 2 столбца НЕ в другом столбце - PullRequest
0 голосов
/ 16 мая 2019

У меня есть 3 столбца, например, team1, team2 и победитель

(ps У меня большой набор данных, я просто привожу небольшой пример)

Я хочу найти, кто никогда не победит.

Итак, я подумал о том, чтобы найти уникальные значения team1 и team 2, а затем из уникальных значений, чтобы найти, какое значение не будет в списке победителей.

team1                        team 2                       toss_winner

Kolkata knight riders       delhi daredevil               delhi daredevils

kings XI punjab            pune warriors                 kings XI punjab

delhi daredevil            mumbai indians                delhi daredevil

pune warriors              chennai superkings            chennai superkings

rajasthan royals           gujarat lions                 gujarat lions

Sunrisers Hyderabad         decan chargers               Sunrisers Hyderabad

Royalchallenger Banglore    Kolkata knight riders        Kolkata knight riders

chennai superkings          rajasthan royals             rajasthan royals

a=np.unique(df[['team1', 'team2']])

b=(df["toss_winner"]).unique()

1 Ответ

0 голосов
/ 16 мая 2019
uniqueTeams = np.unique(np.concatenate([df['team1'].values, df['team2'].values]))

df.loc[~df['toss_winner'].isin(uniqueTeams), 'toss_winner']

Сначала вы объединяете все значения двух столбцов, а затем смотрите на уникальные значения.Затем вы посмотрите на значения, которых нет в нашем uniqueTeams ~df['toss_winner'].isin(uniqueTeams), а затем посмотрите на наш столбец 'toss_winner'.

Вы должны быть осторожны, потому что если в столбце team1 у вас есть 'Kolkata knight rider', но в team2у вас есть колонки 'Kolkata Knight Rider s '.Они будут рассматриваться как уникальные команды, поэтому вам придется действительно очистить ваши данные, прежде чем делать что-либо еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...