[英]How can I remove the duplicates from the DataFrame
问题是有些标题之间的唯一区别是颜色,详细信息的 rest 在每一列中都是匹配的。
例子:
两者之间的唯一区别是金色和太平洋蓝,所有其他值都相同。
现在我想删除所有此类标题或重复项,其中差异仅在标题中,但细节的 rest 相同。
import pandas as pd
import numpy as np
df = pd.read_csv('../amazon_listing_scraper/amazon_listing.csv')
df.head(5)
df[np.isin(df, ['Apple iPhone 12 Pro Max (256GB) - Gold','Apple iPhone 12 Pro Max (256GB) - Pacific Blue']).any(axis=1)]
我致力于清理具有重复Names
的数据集,这就是我删除这些名称的方式:
df = df.drop_duplicates(subset = "Name")
您可以尝试这样做:
df = df.drop_duplicates(subset = "Title")
阅读文档以了解更多信息。
这是对@Ishan Shishodiya 帖子的扩展。
如果通过-
将颜色添加到名称中,那么您可以先拆分,将 DataFrame 扩展一列名为“color”,在“title”上放置重复项,然后再次放置“color”。
df[['title', 'color']] = df['title'].str.split(' - ', 1, expand=True)
df = df.drop_duplicates(subset='title')
df = df.drop('color')
最小的例子
我只在两列中显示它,以进一步简化它。
import pandas as pd
df = pd.DataFrame({
'title': ["Apple iPhone 12 Pro Max (256GB) - Gold", "Apple iPhone 12 Pro Max (256GB) - Pacific Blue"],
'stars':[4.7]*2
})
>>> df
title stars
0 Apple iPhone 12 Pro Max (256GB) - Gold 4.7
1 Apple iPhone 12 Pro Max (256GB) - Pacific Blue 4.7
df[['title', 'color']] = df['title'].str.split(' - ', 1, expand=True)
df = df.drop_duplicates(subset='title')
df = df.drop("color", axis=1)
>>> df
title stars
0 Apple iPhone 12 Pro Max (256GB) 4.7
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.