Python 3.4删除重复项及其相应的值

时间:2015-01-01 23:17:11

标签: python dataframe duplicate-removal

我想从数据框中删除重复项及其对应的原始值。

Sframe是我的数据帧的名称。 我要检查重复项的字段是' TermName',' SchoolName'和' StudentID'。

以下是我开始的一个例子:

TermName SchoolName StudentID
14-15   a   1
14-15   a   1
14-15   a   1
14-15   b   2
14-15   b   2
14-15   b   3
14-15   c   4
14-15   c   5
14-15   d   6
14-15   e   7
14-15   f   8

以下是我要找的内容:

TermName SchoolName StudentID
    14-15   a   1
    14-15   a   1
    14-15   a   1
    14-15   b   2
    14-15   b   2

@Jubbles向我展示了如何识别并保留重复和重复的行(即上面第一个表示例中的最后6行):

#unique that are duplicated only column
Sframe['dup_check_1'] = Sframe.duplicated(cols = ['TermName', 'SchoolName', 'StudentID'], take_last = False)
#duplicates only column
Sframe['dup_check_2'] = Sframe.duplicated(cols = ['TermName', 'SchoolName', 'StudentID'], take_last = True)
#remove both from Sframe (df)
Sframe = Sframe[(Sframe['dup_check_1'] == False) & (Sframe['dup_check_2'] == False)]
#delete duplicate checking columns
del Sframe['dup_check_1'], Sframe['dup_check_2']

我试图通过在这里将False更改为True来获取上面代码排除的行(而不是上面包含的行):

Sframe = Sframe[(Sframe['dup_check_1'] == True) & (Sframe['dup_check_2'] == True)]

......但它没有用。这似乎是代码从False到True的简单更改,但它不会返回正确的行数(只有6而不是354)。

有什么想法吗?

0 个答案:

没有答案
相关问题