如何找到具有多个匹配项的ID?

时间:2019-03-31 23:48:14

标签: python pandas

给出一个CSV文件(实际上是Kaggle football数据集)。如何找出不是一对一匹配的“ player_fifa_api_id”和“ player_api_id”。

SELECT staffid,consultation
        specid,
        SpecName,
        datequalified,
        validdate
FROM staff_speciality
WHERE datequalified >21 and validdate >21;

上面显示两个是不一样的。

player_att.player_fifa_api_id.nunique()
11062

player_att.player_api_id.nunique()
11060

部分数据显示如下:

import numpy as np
import pandas as pd
player_att = pd.read_csv('Player_Attributes.csv',sep = ',') 
player_att.head()

player_fifa_api_id player_api_id 218353 505942 218353 505942 218353 505942 218353 505942 189615 155782 189615 155782

即使我对数据进行了分组,它也显示大多数player_fifa_api_id具有多个匹配。

grouped = player_att.groupby('player_fifa_api_id').count()

样本数据显示重复项,但是,某些player_api_id player_fifa_api_id 2625 14 2752 17 2768 17 具有多个player_api_id。 谁能告诉我如何找到答案?

1 个答案:

答案 0 :(得分:1)

例如,如果您只需要获取具有多个对应的player_fifa_api_id的player_api_id,则只需按player_api_id分组,然后获取所有具有count()> 1的player_api_id。请参见下面的代码:

grouped_matches = player_att.groupby('player_api_id').count().reset_index()
non_unique_matches = grouped_matches.loc[grouped_matches['player_fifa_api_id']>1]['player_api_id']

上面的代码将输出具有多个player_fifa_api_id的player_api_id列表。您可以对player_fifa_api_id进行相同操作。