python - pandas重复记录查找相同和不同的列

标签 python pandas duplicates

我有这样的记录

raw_data = {
        'subject_id': ['1', '2', '2', '3', '3'],
        'name': ['A', 'B', 'B', 'C', 'D'],
        'age_group' : [1, 2, 2, 1, 1]}
df = pd.DataFrame(raw_data, columns = ['subject_id', 'name','age_group'])

其中包含一个(重复的)ID 和一些附加列。下面

ids = df.subject_id
df[ids.isin(ids[ids.duplicated()])]

将仅返回重复的记录。现在我想更好地理解这些列

  • 相同
  • 不同

对于每个重复记录,即在本例中,我希望接收有问题的重复 ID 以及行不同的相应列。

  subject_id name
1          2    B
2          2    B
3          3    C
4          3    D

最佳答案

如果你有

>>>duplicated_ids
  subject_id name  age_group
1          2    B          2
2          2    B          2
3          3    C          1
4          3    D          1

然后

>>>othercols = duplicated_ids.columns[1:]
>>>outcols = ['subject_id']
>>>for col in othercols:
       if not duplicated_ids.drop_duplicates(['subject_id', col], keep=False).empty:
           outcols.append(col)

>>>duplicated_ids.loc[:, outcols]
  subject_id name
1          2    B
2          2    B
3          3    C
4          3    D

关于python - pandas重复记录查找相同和不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44142160/

相关文章:

python - 如何使用列表有条件地从 Pandas DataFrame 中删除重复项

python - 将子文件夹中的多个文件复制到一个文件夹中

python - Pandas - 分组后将滚动总和转移到后续组

mysql - 计算Mysql表中的重复记录?

python-3.x - 使用随机整数和跨列的有限总和创建 pandas 数据框

python - 为什么密度直方图在 y 轴上显示有点奇怪的值?

data-structures - 跳过列表可以有重复的元素吗?

python - 字典条目被覆盖?

python - DataFrame 列名称内的换行符

python - 从包含缺失值的文本文件中读取数据