熊猫:每行包含一个字符串,以逗号分隔,并在列表中添加唯一的单词

尼基

样本df:

filldata = [['5,Blue,Football', 3], ['Baseball,Blue,College,1993', 4], ['Green,5,Football', 1]]
df = pd.DataFrame(filldata, columns=['Tags', 'Count'])

我想要该列中使用的单词的唯一列表Tags因此,我试图遍历df并拉出的每一行Tags,拆分,并添加单词到列表中。我可以只检查并添加唯一的单词,也可以全部添加它们,然后仅添加唯一的单词。如果可能的话,我想为这两种方法提供解决方案,以查看哪种方法更快。
因此,预期输出应为:

5, Blue, Football, Baseball, College, 1993, Green

我已经尝试过这些:

tagslist = df['Tags'][0].split(',')  # To give me initial starting words
def adduniquetags(newtags, tagslist):
    thesetags = newtags.split(',')
    tagslist = tagslist.extend(thesetags)
    return tagslist
tagslist = [adduniquetags(row, tagslist) for row in df['Tags']]

tagslist = df['Tags'][0].split(',')
def adduniquetags(newtags, tagslist):
    thesetags = newtags.split(',')
    for word in thesetags:
            if word not in tagslist:
                tagslist.append(word)   
tagslist = [adduniquetags(row, tagslist) for row in df['Tags']]

这两个本质上是相同的,一个只寻找唯一的单词。这两个都返回“无”列表。
我也尝试过这个:

tagslist = df['Tags'][0].split(',')
def adduniquetags(newtags, tagslist):
    thesetags = newtags.split(',')
    tagslist = list(set(tagslist + thesetags))
    return tagslist
tagslist = [adduniquetags(row, tagslist) for row in df['Tags']]

这是为每一行添加唯一值,而不是每一行中的单词。因此,即使我尝试对进行拆分,,它仍将整个文本视为一个文本,而不是使用字符串中的单个单词。

Shubham Sharma

使用Series.str.split到分裂的字符串,然后使用np.hstack到堆栈水平列所有列表Tags,下次使用np.unique此堆叠阵列上,找到数组的独特元素。

lst = np.unique(np.hstack(df['Tags'].str.split(','))).tolist()

使用Series.explode+的另一个可能的想法Series.unique

lst = df['Tags'].str.split(',').explode().unique().tolist()

结果:

['1993', '5', 'Baseball', 'Blue', 'College', 'Football', 'Green']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在R中,找到每行包含一个字符串的列

如果一个列表仅包含一个字符串,则用逗号分隔的字符串比较两个列表

熊猫:检查一个字符串是否至少包含一个列表中的两个单词

一个字符串中的 POST 数组,以逗号分隔 PHP

Java - 在字符串中的每个单词之前添加一个字符

如何检查一个字符串中是否包含多个单词?

检查另一个字符串中的单词列表

如何向列表中的每个字符串添加一个字符串?

如何从熊猫系列列表中创建一个字符串?

将一个字符串用逗号分隔成列

检查Python列表项是否在另一个字符串中包含一个字符串

查找一个字符串并获取以逗号分隔的前一个字符串

Javascript:向包含特定单词的字符串添加一个字符

按每行的最后一个字符串分组列表

计算一个字符串中出现的一个列表中的单词数

解析一个字符串并提取一个用逗号分隔的单词,并从[]括号内分配值

如何在列表中每个字符串的末尾添加一个字符?

如果一个字符串包含2个单词

匹配包含某些文本的整行,并在换行符后添加一个字符串

如何检查一个字符串是否不包含某个单词?

如何将逗号和括号分隔列表的字符串转换为另一个字符串?

检测字符串中的换行符并在其前面添加一个字符

将数字转换为字符串并在Oracle中添加一个字符

如何在字符串中的每个单词之后添加一个字符?

如何检查一个字符串在PHP中是否包含某个中文单词?

Python:如何在字符串拆分结果中包含分隔符并在结果列表中的分隔符前面添加一个单词?

如果另一列的对应行包含某个子字符串,则在列中分配一个字符串,否则分配另一个字符串

如何重复字符串中单词的第一个字符?

连接字符串中单词的第一个字符