删除数据框中的第一个实例

时间:2018-01-12 14:34:14

标签: python-3.x pandas

我想知道删除Pandas数据帧中特定索引的第一个实例的最佳方法是什么?

在下面的示例中,我想删除第0,5行和第9行

enter image description here

2 个答案:

答案 0 :(得分:1)

boolean indexing使用Index.duplicated

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')}, index=[0,0,1,2,2,2])

print (df)
   A  B  C  D  E  F
0  a  4  7  1  5  a
0  b  5  8  3  3  a
1  c  4  9  5  6  a
2  d  5  4  7  9  b
2  e  5  2  1  2  b
2  f  4  3  0  4  b

df = df[df.index.duplicated()]
print (df)
   A  B  C  D  E  F
0  b  5  8  3  3  a
2  e  5  2  1  2  b
2  f  4  3  0  4  b

详情:

print (df.index.duplicated())
[False  True False False  True  True]

答案 1 :(得分:0)

这是使用groupby的方法:

rst = df.reset_index()
df['int_index'] = df.reset_index().index
firsts = df.groupby(df.index).first()
filt = df[~df['int_index'].isin(firsts['int_index'])]
missing = df[df.index.value_counts() == 1]
res = pd.concat([drp, missing]).sort_index().drop('int_index', axis=1)