pandas使用groupby分组后怎么根据某列对每组去重
时间: 2024-04-30 15:24:26 浏览: 91
pandas使用工作技能总结
可以使用 `groupby` 方法对数据进行分组,然后使用 `drop_duplicates` 方法对每个分组去重。
假设我们有一个数据集 `df`,其中包含三列数据 `A`、`B` 和 `C`,我们要根据列 `A` 进行分组,然后对每个分组去重,可以按照以下方式实现:
```python
grouped = df.groupby('A')
result = grouped.apply(lambda x: x.drop_duplicates('B'))
```
上述代码中,`groupby` 方法会根据列 `A` 对数据进行分组,然后 `apply` 方法会对每个分组应用一个函数,该函数使用 `drop_duplicates` 方法对每个分组中的列 `B` 进行去重。最终的结果是一个去重后的数据集 `result`。
如果想要保留每个分组中的第一个重复值,可以将 `drop_duplicates` 方法的参数 `keep` 设置为 `'first'`,如下所示:
```python
grouped = df.groupby('A')
result = grouped.apply(lambda x: x.drop_duplicates('B', keep='first'))
```
这样做将保留每个分组中的第一个重复值。如果要保留最后一个重复值,可以将 `keep` 设置为 `'last'`。
阅读全文