Python 在迭代数据帧时删除双精度

Python 在迭代数据帧时删除双精度,python,pandas,loops,dataframe,Python,Pandas,Loops,Dataframe,我正在尝试从数据帧中删除双精度 基本上,dataframe包含一个文档的两个(或多个)事件。 通过比较文档的描述可以找到双精度。 在我的逻辑中,我必须找到复制者,复制数据并从数据帧和迭代数据帧中删除它们 但似乎仍有双倍增长,我确实认为这是因为下降,但不知道如何修复。 所以用绿色表示的是描述,我需要去掉两个中的一个,把所有的都用黑色表示 例如: URL1+URL2 | Explorimmo+Bien|u ici |公寓|描述 不幸的是,我无法链接数据集 file = pd.ExcelFile(mc

我正在尝试从数据帧中删除双精度

基本上,dataframe包含一个文档的两个(或多个)事件。 通过比较文档的描述可以找到双精度。 在我的逻辑中,我必须找到复制者,复制数据并从数据帧和迭代数据帧中删除它们

但似乎仍有双倍增长,我确实认为这是因为下降,但不知道如何修复。
所以用绿色表示的是描述,我需要去掉两个中的一个,把所有的都用黑色表示

例如:

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
,并将结果分配给新的数据帧。