我正在使用 df = df.drop_duplicates(["col1",["col2"]) 在我的pandas Dataframe 上,但我需要知道删除的行索引,我如何才能做到这一点?
df = df.drop_duplicates(["col1",["col2"])
50pmv0ei1#
使用 boolean indexing 戴着面具 DataFrame.duplicated 仅适用于指数:
boolean indexing
DataFrame.duplicated
df = pd.DataFrame({'col1':[1] * 4, 'col2':[2,2,3,2]}) print (df) col1 col2 0 1 2 1 1 2 2 1 3 3 1 2 print (df.drop_duplicates(["col1","col2"])) col1 col2 0 1 2 2 1 3
mask = df.duplicated(["col1","col2"]) idx = df.index[mask] print (idx) Int64Index([1, 3], dtype='int64')
或使用 Index.difference 如果已删除重复项:
Index.difference
df1 = df.drop_duplicates(["col1","col2"]) idx = df.index.difference(df1.index) print (idx) Int64Index([1, 3], dtype='int64')
efzxgjgh2#
你可以去 duplicated :
duplicated
dups = df.duplicated(["col1", "col2"]) dups[dups].index
第一行给出一个布尔数组,用于标记行是否重复。第二行对自身使用布尔索引来选择 True 然后我们得到它们的索引。
True
2条答案
按热度按时间50pmv0ei1#
使用
boolean indexing
戴着面具DataFrame.duplicated
仅适用于指数:或使用
Index.difference
如果已删除重复项:efzxgjgh2#
你可以去
duplicated
:第一行给出一个布尔数组,用于标记行是否重复。第二行对自身使用布尔索引来选择
True
然后我们得到它们的索引。