给出一个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
。
谁能告诉我如何找到答案?
答案 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进行相同操作。