python - Pandas - 检查重复项
问题描述
我有一个数据集,我想实现三层检查
a) 如果 Col B 中的所有值都是重复的,则 print("all dupes")
b) 如果 Col B 中的最后 8 个值是重复的,则 print("last 8 are dupes")
c) 如果 Col B 中的最后 5 个值是重复的然后打印(“最后 5 次重复”)
数据框:
Col A Col B
0 XYZ 452
1 ZXP 452
2 ABZ 452
3 CDP 452
4 XEF 452
5 ZRT 452
6 XXX 452
7 YYY 452
8 DDD 452
9 EEE 452
10 FFF 452
11 ZZA 452
我首先尝试了所有欺骗案例:
if df.['Col B'].duplicated.all():
print("all dupes")
elif df.['Col B'].tail(8).duplicated.all():
print("last 8 dupes")
elif df.['Col B'].tail(5).duplicated.all():
print("last 5 dupes")
else:
print("no dupes")
但它直接进入“没有欺骗”。
解决方案
我认为你需要通过 remove.
和 add ()
for来改变Series.duplicated()
,如果需要测试所有重复的 addkeep=False
参数:
df.['Col B'].duplicated.all()
至:
df['Col B'].duplicated(keep=False).all()
全部一起:
if df['Col B'].duplicated(keep=False).all():
print("all dupes")
elif df['Col B'].tail(8).duplicated(keep=False).all():
print("last 8 dupes")
elif df['Col B'].tail(5).duplicated(keep=False).all():
print("last 5 dupes")
else:
print("no dupes")
您只能测试列一次,然后选择 mask 的最后一个值m
:
m = df['Col B'].duplicated(keep=False)
if m.all():
print("all dupes")
elif m.tail(8).all():
print("last 8 dupes")
elif m.tail(5).all():
print("last 5 dupes")
else:
print("no dupes")
推荐阅读
- vue.js - 将 vuelidate 与 vuetify 一起使用
- python - 使用 Flask 将文件保存到本地主机时出现 FileNotFoundError
- sql - Powershell - 无法为 System.Data.SqlClient.SqlBulkCopy 找到合适的构造函数
- pandas - DataFrame:如何添加其值是另一列的唯一计数的列?
- dc.js - dc.js 减少错误。我需要获取在其他项目上重复(和依赖)的项目的唯一计数
- c - 如何使用 imagemagick 从 c 中的图像列表创建 gif
- python - 通过拆分行创建新的 pandas 数据框
- outlook-addin - Outlook MAPI - 无法从属性 PR_RECIPIENT_TRACKSTATUS_DELIVERY 检索数据
- javascript - 如何在 React Native 移动应用程序中集成简单的 js 文件?
- pandas - 将名称列表的列拆分为所有首字母组合