Python-删除具有重复索引的行(Pandas DataFrame和TimeSeries)

Python-删除具有重复索引的行(Pandas DataFrame和TimeSeries),第1张

Python-删除具有重复索引的行(Pandas DataFrame和TimeSeries)

我建议对熊猫指数本身使用重复的方法

df3 = df3.loc[~df3.index.duplicated(keep='first')]

尽管所有其他方法都起作用,但是对于所提供的示例,当前接受的答案到目前为止性能最低。此外,尽管groupby方法的性能稍差一些,但我发现重复的方法更具可读性。

使用提供的样本数据:

>>> %timeit df3.reset_index().drop_duplicates(subset='index', keep='first').set_index('index')1000 loops, best of 3: 1.54 ms per loop>>> %timeit df3.groupby(df3.index).first()1000 loops, best of 3: 580 µs per loop>>> %timeit df3[~df3.index.duplicated(keep='first')]1000 loops, best of 3: 307 µs per loop

请注意,您可以通过更改keep参数保留最后一个元素。

还应该注意,该方法也可以MultiIndex使用(使用Paul的示例中指定的df1 ):

>>> %timeit df1.groupby(level=df1.index.names).last()1000 loops, best of 3: 771 µs per loop>>> %timeit df1[~df1.index.duplicated(keep='last')]1000 loops, best of 3: 365 µs per loop


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存