我正在尝试编写一个脚本来查找电子表格中的重复行。我正在使用Pandas库。这是初始 Dataframe :
import pandas as pd
df = pd.DataFrame({'title': [1, 2, 3, 4, 5, 6, 7, 8],
'val1': [1.1, 1.1, 2.1, 8.8, 1.1, 1.1, 8.8, 8.8],
'val2': [2.2, 3.3, 5.5, 6.2, 2.2, 3.3, 6.2, 6.2],
'val3': [3.4, 4.4, 5.5, 8.4, 0.5, 3.4, 1.9, 3.7]
})
print(df)
title val1 val2 val3
1 1.1 2.2 3.4
2 1.1 3.3 4.4
3 2.1 5.5 5.5
4 8.8 6.2 8.4
5 1.1 2.2 0.5
6 1.1 3.3 3.4
7 8.8 6.2 1.9
8 8.8 6.2 3.7
我已经根据指定的列使用duplicated方法找到了所有重复的行,并通过添加新列来标记它们,例如
df['duplicate'] = df.duplicated(keep=False, subset=['val1', 'val2'])
print(df)
title val1 val2 duplicated
1 1.1 2.2 true
2 1.1 3.3 true
3 2.1 5.5 false
4 8.8 6.2 true
5 1.1 2.2 true
6 1.1 3.3 true
7 8.8 6.2 true
8 8.8 6.2 true
在最后一步中,我希望通过添加带有第一个出现的标题的信息来标记所有重复行。这样,我希望以后更容易对它们进行排序和分组。结果如下所示:
title val1 val2 first_occurence
1 1.1 2.2 true
2 1.1 3.3 true
3 2.1 5.5 false
4 8.8 6.2 true
5 1.1 2.2 title1
6 1.1 3.3 title2
7 8.8 6.2 title4
8 8.8 6.2 title4
我试着找一个类似的主题,但是没有成功。有人知道怎么做吗?
1条答案
按热度按时间vmdwslir1#
你不能在Pandas里做。这是一个可能的解决方案:
1.获取重复行的列表
1.迭代该列表并生成一个新行,其中包含一个类似“duplicate_index”的新列,并在该列中插入每个重复行的第一个相等行的标题编号
1.在新df中插入所有行(“duplicate_index”中具有空值的原始行
1.保存新df