数据集重复值计数代码异常求助:输出与预期不符
问题:数据集重复值计数结果不符合预期
需求:检查数据集内的重复值,返回重复值的整数计数。
编写的错误代码:
def check_duplicates(): ds = pd.read_csv("Hospital_patients_datasets.csv") # Method to check for duplicate rows in the DataFrame. # Returns: The number of duplicated rows found in the DataFrame. ds=ds.duplicated().count() return ds
测试失败情况:
------------- Test Case Failed -------------
your output do not match the expected output:Your Updated results:
110527
预期输出:0
问题原因
ds.duplicated()返回一个布尔Series,重复行对应True,非重复行对应False。你使用的count()方法是统计这个Series的总元素数量(即数据集总行数),而非重复行的数量。
修正方案
将count()替换为sum():布尔值中True等价于1,False等价于0,sum()会自动累加所有True的数量,也就是重复行的计数:
def check_duplicates(): ds = pd.read_csv("Hospital_patients_datasets.csv") # Method to check for duplicate rows in the DataFrame. # Returns: The number of duplicated rows found in the DataFrame. duplicate_count = ds.duplicated().sum() return duplicate_count
如果需要统计所有重复的行(包括首次出现的重复行),可以给duplicated()添加参数keep=False,这样所有重复行都会被标记为True,sum()后得到的是所有重复行的总数:
duplicate_count = ds.duplicated(keep=False).sum()
内容的提问来源于stack exchange,提问作者B.h.1999
相关产品推荐
相关产品推荐

