Python 在迭代数据帧时删除双精度
我正在尝试从数据帧中删除双精度 基本上,dataframe包含一个文档的两个(或多个)事件。 通过比较文档的描述可以找到双精度。 在我的逻辑中,我必须找到复制者,复制数据并从数据帧和迭代数据帧中删除它们 但似乎仍有双倍增长,我确实认为这是因为下降,但不知道如何修复。Python 在迭代数据帧时删除双精度,python,pandas,loops,dataframe,Python,Pandas,Loops,Dataframe,我正在尝试从数据帧中删除双精度 基本上,dataframe包含一个文档的两个(或多个)事件。 通过比较文档的描述可以找到双精度。 在我的逻辑中,我必须找到复制者,复制数据并从数据帧和迭代数据帧中删除它们 但似乎仍有双倍增长,我确实认为这是因为下降,但不知道如何修复。 所以用绿色表示的是描述,我需要去掉两个中的一个,把所有的都用黑色表示 例如: URL1+URL2 | Explorimmo+Bien|u ici |公寓|描述 不幸的是,我无法链接数据集 file = pd.ExcelFile(mc
所以用绿色表示的是描述,我需要去掉两个中的一个,把所有的都用黑色表示 例如: URL1+URL2 | Explorimmo+Bien|u ici |公寓|描述 不幸的是,我无法链接数据集
file = pd.ExcelFile(mc.file_path)
df = pd.read_excel(file)
description_duplicate = df.loc[df.duplicated(['DESCRIPTION']) == True]
for idx1, clean in description_duplicate.iterrows():
for idx2, dirty in description_duplicate.iterrows():
if idx1 != idx2:
if clean['DESCRIPTION'] == dirty['DESCRIPTION']:
clean['CRAWL_SOURCE'] = clean['CRAWL_SOURCE'] + " / " +dirty['CRAWL_SOURCE']
clean['URL'] = clean['URL'] + " / " + dirty['URL']
description_duplicate = description_duplicate.drop(idx2)
df = df.drop(idx2)
df[idx1] = clean
您只需使用
pandas.DataFrame.drop\u duplicates()
函数删除重复项:
df.drop_duplicates(subset='DESCRIPTION', inplace=True)
如果需要比较的不仅仅是
DESCRIPTION
字段来检查它是否重复,那么这将更容易回答,这可能会有帮助:我应该检查哪些其他字段?很多字段都是“大小”“价格”“楼梯”,所以我选择只比较“描述”和“图像”,因为它们是提供更多“唯一性”的字段,这种想法是否错误?您可以扩展子集并给出列列表['col\u x','col\u y']
,如果DESCRIPTION
字段不够,但如果我这样做,我会丢失复制品的来源信息。drop_duplicates功能是否保留一个唯一的文档?我在pandas文档中找不到。是的,默认情况下它将保留第一条记录。您甚至可以指定是否要保留第一个、最后一个或不保留任何记录。请参阅此处的文档:如果您不想丢失复制源的位置信息,只需设置inplace=False
,并将结果分配给新的数据帧。