2列的唯一值不在另一列中

时间:2019-05-16 16:08:57

标签: python pandas pandas-groupby

我有3列,例如team1,team2和获胜者

(附言:我的数据集很大,我只是在这里举几个例子)

我想找出谁永远不会赢。

所以我认为是要找到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 :(得分:0)

uniqueTeams = np.unique(np.concatenate([df['team1'].values, df['team2'].values]))

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

首先,合并两列的所有值,然后查看唯一值。接下来,您查看我们独特团队~df['toss_winner'].isin(uniqueTeams)中当前的值,然后查看“ toss_winner”列。

您必须小心,因为如果有team1列 “加尔各答骑士骑士”,但在team2栏中您有“加尔各答骑士骑士 s ”。这些将被视为独特的团队,因此您将必须在执行其他任何操作之前真正清除数据。