我开始使用熊猫,并且在较大的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是一个非常优雅的包装,对于比我更了解的人来说,这似乎很容易实现。
提前致谢!
最佳答案
如果我对您的理解正确,我认为您可以使用熊猫按照以下方式进行操作。在分割字符串之前,我将从系列开始:
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