熊猫列中的单词展开袋(python)

时间:2018-07-17 20:02:57

标签: python pandas

在熊猫中,我试图从col2中出现的单词中解开一袋单词。我的主要目的是在每个不同的类别中找到所有独特的单词及其出现的频率。如果一个单词在一个类别中出现两次,则该单词将计为1(例如“ msk”和“ people”)。

例如- 我有一个熊猫列,看起来像这样:

col1        col2
Software    [msk , people , inc. ]
Software    [logical , corp , ltd ] 
Software    [imt , datalink , services. ]
Hardware    [peoples , avenue , management ] 
Hardware    [msk , techn ]
Transport   [tata , mgm , workspace , ltd ] 
Services    [msk , people , inc. ]
Services    [happy , people , party , new ] 

我的输出应该像这样

words       category-freq .                          
msk          3
people       2
inc.         2 
logical      1
corp         1
ltd          2

等(这只是我提供的一个示例,在末尾省略了一些行)

第2列中的单词袋采用列表形式。

1 个答案:

答案 0 :(得分:2)

更新:

df.set_index('col1')['col2'].apply(pd.Series).stack().groupby(level=0).value_counts()

输出:

col1                 
Hardware   avenue        1
           management    1
           msk           1
           peoples       1
           techn         1
Services   people        2
           happy         1
           inc.          1
           msk           1
           new           1
           party         1
Software   corp          1
           datalink      1
           imt           1
           inc.          1
           logical       1
           ltd           1
           msk           1
           people        1
           services.     1
Transport  ltd           1
           mgm           1
           tata          1
           workspace     1
dtype: int64

使用:

df.col2.apply(pd.Series).stack().value_counts()

输出:

people        3
msk           3
ltd           2
inc.          2
techn         1
peoples       1
new           1
management    1
imt           1
datalink      1
mgm           1
tata          1
party         1
happy         1
services.     1
corp          1
avenue        1
logical       1
workspace     1
dtype: int64