首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用类似的字符串删除复制?

如何使用类似的字符串删除复制?
EN

Stack Overflow用户
提问于 2022-04-11 10:42:25
回答 1查看 33关注 0票数 -1

问题是有些标题有细微差别,有的有颜色差异,有的有空间,有些则没有类似的变化趋势。其余的细节是匹配的每一栏标题。

下面的例子

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame({
    'title': ["Apple iPhone 12 Pro Max (256GB) - Gold",
              "Apple iPhone 12 Pro Max (256GB) - Pacific Blue",
              "boAt Bassheads 100 in Ear Wired Earphones with Mic(Black)",
              "boAt Bassheads 100 in Ear Wired Earphones with Mic(Furious Red)",
              "boAt Bassheads 100 in Ear Wired Earphones with Mic(White)",
              "Redmi 9A Sport (Carbon Black, 3GB RAM, 32GB Storage) | 2GHz Octa-core Helio G25 Processor | 5000 mAh Battery",
              "Redmi 9A Sport (Coral Green, 3GB RAM, 32GB Storage) | 2GHz Octa-core Helio G25 Processor | 5000 mAh Battery"
 ],
    
    'List_Price':[129900, 129900, 299, 299, 299,8299,8299],
    'Total_Ratings':[1536, 1536, 313053, 313053, 313053,155678,155678],
     'Stars':[4.7, 4.7, 4.1, 4.1, 4.1,4.2,4.2]
  
})

注:这只是一个例子,有很多的标题,有一个小的区别。

我想要这样的东西。输出:

  1. Apple iPhone 12 Pro Max (256 3GB )
  2. boAt Basads100in带Mic
  3. Redmi 9A运动(碳黑,3GB内存,32 3GB存储)的耳朵有线耳机(碳黑,3GB内存,32 3GB存储)

与所有其他列记录一样。

EN

回答 1

Stack Overflow用户

发布于 2022-04-11 11:05:30

对此有不同的方法,因为您不想筛选的数据具有不同的属性。

一种天真但有效的方法是对特定字符进行拆分以删除某些文本。

另一种方法是使用regex删除括号内的任何内容。

在此之后,您只需丢弃重复的

下面是一个示例:

代码语言:javascript
复制
def function_1 (text, term):
    try:
        return text.split('{}'.format(term))[0].strip()
    except:
        return text

df['title'] = df.apply(lambda row: function_1(row['title'],'-'),1)
df['title'] = df.apply(lambda row: function_1(row['title'],'|'),1)

df['title'] = df.apply(lambda row: re.sub(r'\([^)]*\)', '', row['title']).strip(),1)

df = df.drop_duplicates()

df.head()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71826419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档