删除链式重复项

时间:2015-06-24 08:05:42

标签: numpy pandas duplicates hdf5

假设我有一个清单:

lits = [1, 1, 1, 2, 0, 0, 0, 0, 3, 3, 1, 4, 5, 2, 2, 2, 0, 0, 0]

我需要这个成为[1, 1, 2, 0, 0, 3, 3, 1, 4, 5, 2, 2, 0, 0] (删除重复项,但仅限于一系列重复项。要在大型HDF5文件上执行此操作,使用pandas,numpy。宁可不要使用for循环遍历所有元素。

table = table.drop_duplicates(cols='[SPEED OVER GROUND  [kts]]', take_last=True)

我可以对此代码进行修改吗?

1 个答案:

答案 0 :(得分:1)

在pandas中你可以做一个布尔掩码,只有当它与前一个或后一个值不同时才选择一行:

>>> df=pd.DataFrame({ 'lits':lits })

>>> df[ (df.lits != df.lits.shift(1)) | (df.lits != df.lits.shift(-1)) ]

    lits
0      1
2      1
3      2
4      0
7      0
8      3
9      3
10     1
11     4
12     5
13     2
15     2
16     0
18     0