python - 从给定列表的列中查找重复项
问题描述
示例 csv 如下所示:
name,id
row1,1
row2,2
row3,3
custom,test
custom,test2
row1,4
nameRows = ['row1', 'row2', 'row3']
我为要检查重复项的每一行定义了一个字符串数组。如何仅在“名称”列下检查 nameRows 中的行是否重复?并忽略其他重复行,例如“自定义”。我只想要一个打印语句,上面写着 print('{0} is a duplicate row in the name column'.format(row))
半相关的,我目前正在使用它来在名称列下存在非常需要的行,也许我可以使用相同的 for 循环来查找错误...?
for row in nameRows:
if row not in df['name'].values:
print("Required {0} row 'name' not found in the csv file.".format(row))
解决方案
选项1
nameRows = ['row1', 'row2', 'row3']
for row in nameRows:
if len(df[df['name'].str.contains(row , na=False)]) > 1:
print(f'Row {row} is duplicate')
选项 2
nameRows = ['row1', 'row2', 'row3']
for row in nameRows:
if len(df[df['name'] == row]) > 1:
print(f'Row {row} is duplicate')
如果你想反过来,请使用not条件。
推荐阅读
- javascript - 计算/异步数据获取
- c# - 应用程序在启动时崩溃,KERNELBASE.dll,异常代码 e0434352
- python - 从另一个带有参数的 python 脚本调用 python 脚本不起作用
- ios - Swift:无法通过使用发送者的 segue 设置 [String]
- continuous-integration - BuildBot:无法在 master.cfg 中注入扩展事件处理程序
- php - 如何将数据从 ionic 发布到 restfull api(Codeigniter)?
- c - x86_64 和/或 armv7-m mov 指令可以在操作中中断吗?
- javascript - 向 DOM 添加新元素后,如何使活动按价格排序?
- asp.net-mvc - 在 Orchard / ASP.NET MVC / Razor 中使用“单个文件”Vue.js 组件
- c# - 使用嵌套 SQL 的视图模型中的 LINQ 数据