加入两个数据框(具有自己的ID)后,我有一些重复项(来自两个来源的重复ID) 我想删除在任何一个ID上都重复的所有行(这样就不会保留重复项)
我可以按第一个ID分组,对count == 1进行计数和过滤,然后对第二个ID重复该操作,然后将这些输出内部联接回到原始联接的数据帧-但这有点长。
是否有一个更简单的方法,例如dropDuplicates(),但是没有任何重复项被留下?
我看到熊猫可以选择不保留第一个重复的df.drop_duplicates(subset = ['A','C'],keep = False)
答案 0 :(得分:0)
根据官方documentation。
返回删除了重复行的新DataFrame(仅可选) 考虑某些列。
要考虑所有列删除重复项:
df.dropDuplicate(subset=col_name)
如果要从某些列中删除重复项
df.dropDuplicates(subset=[col_name1, col_name2])
对于多列:
df = df.agg(criteria_col).agg(sum(lit(1)).alias('freq'))
df = df.filter(col('freq')=1)
{{1}}