首页 > 后端开发 > Python教程 > 如何根据 Pandas 中的索引删除重复行?

如何根据 Pandas 中的索引删除重复行?

Barbara Streisand
发布: 2024-11-13 05:13:02
原创
242 人浏览过

How to Remove Duplicate Rows Based on Indices in Pandas?

如何根据 Pandas 中的索引删除重复行

在数据分析中,经常需要识别并删除数据中的重复行数据集。使用 Pandas(一种用于数据操作的流行 Python 库)时,您可能会遇到多行共享相同索引值的情况。此问题可能是由于数据输入错误或意外重复等原因引起的。

重复行示例

考虑以下天气 DataFrame,它表示每小时进行的观测间隔:

                      Sta  Precip1hr  Precip5min  Temp  DewPnt  WindSpd  WindDir  AtmPress
Date                                                                                      
2001-01-01 00:00:00  KPDX          0           0     4       3        0        0     30.31
2001-01-01 00:05:00  KPDX          0           0     4       3        0        0     30.30
2001-01-01 00:10:00  KPDX          0           0     4       3        4       80     30.30
2001-01-01 00:15:00  KPDX          0           0     3       2        5       90     30.30
2001-01-01 00:20:00  KPDX          0           0     3       2       10      110     30.28
登录后复制

在此 DataFrame 中,请注意“2001-01-01 00:00:00”的观察结果在 DataFrame 的末尾重复。要清理数据,必须删除这些重复的行。

使用重复的方法

Pandas 提供了一种称为 duplicd 的有效方法来识别和选择重复的行。此方法考虑基于 DataFrame 中所有列的重复行。通过传递 keep 参数,您可以指定是否保留每个重复组的第一次出现或最后一次出现。

在这种情况下,我们希望根据索引保留每个重复组的第一次出现:

df3 = df3[~df3.index.duplicated(keep='first')]
登录后复制

这种方法利用了 Pandas Index 对象的重复方法,该方法直接对 DataFrame 的索引进行操作。通过使用 ~ 否定结果,我们选择未标记为重复的行。指定 keep='first' 确保我们保留每个重复索引组的第一个实例。

性能注意事项

需要注意的是,不同方法的性能删除重复行的方法因数据和具体条件而异。基准测试显示,对于给定示例,duplicated 方法的性能最高,其次是 groupby 方法和 reset_index().drop_duplicates()。

以上是如何根据 Pandas 中的索引删除重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板