python - Python:使用列值聚合行并为每个键删除一行
问题描述
我正在尝试找到一种方法来从我的数据库中删除所有重复的记录。
例如,如果我有这个表(存储在 CSV 文件中):
colA colB
1 102
2 101
3 101
4 105
5 102
6 101
如果我们为 colB 列使用 groupBy 聚合表,我们有:
colB count()
105 1
102 2
101 3
我想收到的决赛桌是:
colA colB
1 102
2 101
3 101
- colB=105 的行不存在,因为我们在第一个表中只有一行。
- 因为我们在第一个表中有两行,所以显示了 colB=102 的一行。
- 因为我们在第一个表中有三行,所以显示了两行 colB=101。
还有一件事:删除哪一行并不重要。
解决方案
Series.duplicated
与可选参数一起使用keep=last
:
m = df['colB'].duplicated(keep='last')
df = df[m]
# print(df)
colA colB
0 1 102
1 2 101
2 3 101
推荐阅读
- python - 毫米:ss 格式的 PyQt 倒数计时器
- azure - Azure 语音识别未检测到麦克风 SPXERR_MIC_NOT_FOUND
- python - BotBuilder Python - 处理多个对话和意图
- flutter - 如何在flutter中保存数据?
- c# - 如何在 ASP.NET CORE MVC 应用程序中为多个表创建 ViewModel?
- reactjs - 我通过这个 Reddit API 映射错误吗?无打印
- python - pip install pyodbc 失败
- r - 将 R 数据导出到 csv
- flutter - 使用 Visual Studio Code 保存文件创建新应用后,热重载不起作用
- python - 如何使用函数从 python 中的字符串中删除撇号?