Skip to main content
 首页 » 编程设计

python之在 split() 操作后获取 pandas 中唯一的字符串列表

2025年05月04日20www_RR

我开始使用 pandas,在更大的 DataFrame 中有一列数据,例如

0                  one two 
1            two seven six 
2           three one five 
3    seven five five eight 
4                 six four 
5                    three 
dtype: object 

我想做的是将单词序列拆分成它们的组成部分,然后得到一个唯一的集合或对单词进行计数。我可以很好地拆分

numbers.str.split(' ') 
 
0                    [one, two] 
1             [two, seven, six] 
2            [three, one, five] 
3    [seven, five, five, eight] 
4                   [six, four] 
5                       [three] 
dtype: object 

但是,我不确定从这里到哪里去。同样,我想要输出如

['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight'] 

或在具有计数的字典中相同,或在这两者之一的 Series/DataFrame 中相同。

到目前为止,我能做的最好的事情是结合使用 apply() 和 Set 来获取唯一的单词。 pandas 是我迄今为止所见的一个非常优雅的包,对于比我更了解它的人来说,这似乎很容易获得。

提前致谢!

请您参考如下方法:

如果我对你的理解正确,我想你可以使用 pandas 按如下方式完成。在拆分字符串之前,我将从系列开始:

print s 
 
0                  one two 
1            two seven six 
2           three one five 
3    seven five five eight 
4                 six four 
5                    three 
 
stacked = pd.DataFrame(s.str.split().tolist()).stack() 
print stacked 
 
0  0      one 
   1      two 
1  0      two 
   1    seven 
   2      six 
2  0    three 
   1      one 
   2     five 
3  0    seven 
   1     five 
   2     five 
   3    eight 
4  0      six 
   1     four 
5  0    three 

现在只需计算系列的值计数:

print stacked.value_counts() 
 
five     3 
one      2 
three    2 
six      2 
two      2 
seven    2 
eight    1 
four     1 
dtype: int64