我有这样的记录
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/