删除不重复的条目

时间:2015-10-17 05:04:47

标签: python pandas

数据框(pandas)有两列。需要删除第1列中的条目没有重复项的行。

示例数据:

1 A
1 B
2 A
3 D
2 C
4 E
4 E

预期输出

1 A
1 B
2 A
2 C
4 E
4 E

换句话说,需要从第1列中删除所有单次出现(暗示唯一)的值。在python(~50k行)中实现此目的的最快方法是什么?

2 个答案:

答案 0 :(得分:2)

一种方法是使用duplicated()方法

df.duplicated('c1')默认标记除了第一个,take_last=True给出其他标记。

In [600]: df[df.duplicated('c1') | df.duplicated('c1', take_last=True)]
Out[600]:
   c1 c2
0   1  A
1   1  B
2   2  A
4   2  C
5   4  E
6   4  E

答案 1 :(得分:1)

这是一种方法:假设数据帧为'd',列名为'a'和'b'。首先,获取“a”中每个唯一值的出现次数:

e = d['a'].value_counts()

然后获取大于1的值列表,并返回第一列是该列表成员的行:

d[d['a'].isin(e[e>1].index)]