如何将 Pandas GroupBy 的发现应用于源数据

蒙扎

我正在使用 pandas de_dupe 进行名称重复数据删除,并且有多个步骤。

首先,我对源数据进行训练和重复数据删除。

deDupedNames = dedupe_dataframe( sourceData, columnsOfInterest, config_name=configName)

接下来我丢弃集群只有 1 个参与者的数据集

dedupedComplexSets = dedupe_df_sorted.groupby( ['cluster id']).filter(lambda x: len(x) > 1)

接下来,我需要检查每组匹配项(按“集群 ID”分组)并确认每组中名称的前 3 个字符至少相同。我通过遍历 dedupedComplexSets 中的每个组并进一步按每个Surname的前三个字符对每个组的内容进行分组来执行此操作

for name, group in dedupedComplexSetsGrouped:
    bySurnamePrefix = group.groupby(group.Surname.str[:3]).size()

最后,我想标记属于重复数据删除集群的每一行,其中 Surname 'begins with' 的数量 > 1

for name, group in dedupedComplexSetsGrouped:
    bySurnamePrefix = group.groupby(group.Surname.str[:3]).size()

    if( len( bySurnamePrefix) > 1):
        dedupedComplexSets[group, 'RowClusterHasLeadingCharacterMismatch'] = True

但是,由于“可变哈希”错误或其他错误,我无法写回原始数据帧。

这样的问题如何解决?以及如何在 Grouped Set 数据帧之外进行组检查的输出?一定有正确的方法......?

示例数据(其中 RowClusterHasLeadingCharacterMismatch 是脚本列):

RowID|名字|姓氏

12345, fred, surname, false, 
24385, frred, surname, false, 

示例数据输出:RowID|FirstName|Surname|cluster id|confidence|RowClusterHasLeadingCharacterMismatch

12345, fred, surname, false, 1, .9999995, True
24385, frred, surname, false, 1, .999992, True

请注意,我使用 RowClusterHasLeadingCharacterMismatch 作为记录不匹配的一种方式。也许有更有效的方法来做到这一点?

蒙扎

如上面的评论所示,来自 Jezrael 的回答:

代替: dedupedComplexSets[group, 'RowClusterHasLeadingCharacterMismatch'] = True to

dedupedComplexSets.loc[group.index, 'RowClusterHasLeadingCharacterMismatch'] = True

我的评论:对 dedupedComplexSets 所做的更改将反映在dedupedComplexSets 中,并且可以保存到 CSV。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pandas 如何将函数应用于 groupby().first()

将功能应用于Pandas Groupby

如何将*多个*函数应用于pandas groupby apply?

如何将方法应用于Pandas数据框

将函数应用于pandas groupby 数据框中的所有列

将ewm功能应用于Pandas groupby

将pandas groupby的结果应用于多行

将排名应用于Pandas Groupby中的每个组

如何将格式应用于groupby函数?

如何将自定义滚动功能应用于pandas groupby?

如何将条件应用于 PySpark 中的 groupby 数据框

Pandas Complex GroupBy 并应用于机器学习数据集

如何使用groupby将多个函数应用于Pandas中的多个列?

如何将聚合函数应用于Pandas中数据透视表的所有列

如何将 countvectorizer 应用于 Pandas 数据帧中的二元组

如何将公式仅应用于Pandas数据透视表的某些行?

如何将字典应用于包含 Pandas 中的 numpy 数组的数据框列

如何将引用几列的函数应用于pandas数据框?

如何将拆分字符串应用于pandas中的整个excel数据集

使用pyspark将功能应用于groupBy数据

Python Pandas如何将groupby操作结果分配回父数据帧中的列?

如何将数据从pandas groupby函数分配给变量?

一次将多种功能应用于Pandas groupby对象

使用 GroupBy 沿分组变量的方向将函数应用于 Pandas

是否可以将 python pandas 中的 groupby 应用于已经分组的对象?

Pandas GroupBy-在保留原始顺序的同时将功能应用于每个组

将具有多个参数的函数应用于pandas groupby对象

Pandas groupby汇总将多个功能应用于多个列

将groupby应用于pandas datarame时添加Counters对象