[英]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.