在Pandas DataFrame中删除重复索引的最快方法

时间:2014-04-07 16:39:54

标签: python pandas duplicate-removal

如果我想删除数据框中的重复索引,以下原因并不明显:

myDF.drop_duplicates(cols=index)

myDF.drop_duplicates(cols='index') 

查找名为' index'

的列

如果我想删除索引,我必须这样做:

myDF['index'] = myDF.index
myDF= myDF.drop_duplicates(cols='index')
myDF.set_index = myDF['index']
myDF= myDF.drop('index', axis =1)

有更有效的方法吗?

3 个答案:

答案 0 :(得分:30)

简单地说:DF.groupby(DF.index).first()

答案 1 :(得分:21)

'重复'该方法适用于数据帧和系列。只需选择那些没有标记为具有重复索引的行:

df[~df.index.duplicated()]

答案 2 :(得分:5)

您可以使用numpy.unique获取唯一值的索引,并使用iloc来获取这些索引:

>>> df
        val
A  0.021372
B  1.229482
D -1.571025
D -0.110083
C  0.547076
B -0.824754
A -1.378705
B -0.234095
C -1.559653
B -0.531421

[10 rows x 1 columns]

>>> idx = np.unique(df.index, return_index=True)[1]
>>> df.iloc[idx]
        val
A  0.021372
B  1.229482
C  0.547076
D -1.571025

[4 rows x 1 columns]