2024-06-26 00:01:13 发布
网友
我有一个dataframe,它在“tags”列中有一些用逗号分隔的重复标记,有没有办法从序列中删除重复的字符串。我希望400年的产量只有博物馆,喝酒,购物。你知道吗
我不能用逗号拆分并删除它们,因为序列中有一些标签具有类似的单词,例如:[Museum,Art Museum,Shopping],因此拆分和删除多个博物馆字符串会影响唯一的“Art Museum”字符串。你知道吗
Desired Output
您可以创建一个从给定字符串中删除重复项的函数。然后将此函数应用于列标记。你知道吗
def remove_dup(strng): ''' Input a string and split them ''' return ', '.join(list(dict.fromkeys(strng.split(', ')))) df['Tags'] = df['Tags'].apply(lambda x: remove_dup(x))
演示:
import pandas as pd my_dict = {'Tags':["Museum, Art Museum, Shopping, Museum",'Drink, Drink','Shop','Visit'],'Country':['USA','USA','USA', 'USA']} df = pd.DataFrame(my_dict) df['Tags'] = df['Tags'].apply(lambda x: remove_dup(x)) df
输出:
Tags Country 0 Museum, Art Museum, Shopping USA 1 Drink USA 2 Shop USA 3 Visit USA
在用str.strip()删除前导/尾随空格后,可以用逗号拆分并转换为set(),这样可以删除重复项。然后,您可以df.apply()将它添加到您的列中。你知道吗
str.strip()
set()
df.apply()
df['Tags']=df['Tags'].apply(lambda x: ', '.join(set([y.strip() for y in x.split(',')])))
如果没有一些代码示例,我已经把一些可以工作的东西放在一起了。你知道吗
import pandas as pd test = [['Museum', 'Art Museum', 'Shopping', "Museum"]] df = pd.DataFrame() df[0] = test df[0]= df.applymap(set)
Out[35]: 0 0 {Museum, Shopping, Art Museum}
您可以创建一个从给定字符串中删除重复项的函数。然后将此函数应用于列标记。你知道吗
演示:
输出:
在用
str.strip()
删除前导/尾随空格后,可以用逗号拆分并转换为set()
,这样可以删除重复项。然后,您可以df.apply()
将它添加到您的列中。你知道吗如果没有一些代码示例,我已经把一些可以工作的东西放在一起了。你知道吗
相关问题 更多 >
编程相关推荐