python - 如何找到具有多个匹配项的 id?
问题描述
给定一个 CSV 文件(实际上是来自 Kaggle 足球数据的数据集)。如何找出不是一对一匹配的“player_fifa_api_id”和“player_api_id”。
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
grouped = player_att.groupby('player_fifa_api_id').count()
即使我对数据进行了分组,它也显示大多数 player_fifa_api_id 都有多个匹配项。
player_api_id player_fifa_api_id
2625 14
2752 17
2768 17
示例数据显示重复,但有些player_api_id
有多个player_fifa_api_id
. 谁能告诉我如何找到这个?
解决方案
例如,如果您只需要获取具有多个对应 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 执行相同的操作。
推荐阅读
- kotlin - 是否可以为 Kotlin 原始数组创建通用函数
- reactjs - 无法从 ReactPrime 复制 DataTable 中的纯文本
- javascript - 自动文件上传
- acumatica - 如何使用 Coalesce 和 PXProjection 的示例?
- flutter - 如何等到 Finder 在 Flutter 集成测试中显示下一个代码执行?
- javascript - 十进制的正则表达式模式匹配
- amazon-web-services - 如何删除 AWS Rekognition 自定义标签数据集
- c - 为什么我在使用睡眠功能时需要在 c 中使用“\n”?
- c - 从文件中读取一个双数 - c
- python - Python Scipy dblquad 函数在短距离上给出错误答案