如何根据 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中文网其他相关文章!