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

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

Barbara Streisand
Barbara Streisand原创
2024-11-13 05:13:02259浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn