ドキュメント内の単語の頻度をカウントすることに加えて、単語が関連付けられている個別の ID の数をカウントしたいと考えています。例で説明する方が簡単です:
from pandas import *
from collections import defaultdict
d = {'ID' : Series(['a', 'a', 'b', 'c', 'c', 'c']),
'words' : Series(["apple banana apple strawberry banana lemon",
"apple", "banana", "banana lemon", "kiwi", "kiwi lemon"])}
df = DataFrame(d)
>>> df
ID words
0 a apple banana apple strawberry banana lemon
1 a apple
2 b banana
3 c banana lemon
4 c kiwi
5 c kiwi lemon
# count frequency of words using defaultdict
wc = defaultdict(int)
for line in df.words:
linesplit = line.split()
for word in linesplit:
wc[word] += 1
# defaultdict(<type 'int'>, {'kiwi': 2, 'strawberry': 1, 'lemon': 3, 'apple': 3, 'banana': 4})
# turn in to a DataFrame
dwc = {"word": Series(wc.keys()),
"count": Series(wc.values())}
dfwc = DataFrame(dwc)
>>> dfwc
count word
0 2 kiwi
1 1 strawberry
2 3 lemon
3 3 apple
4 4 banana
上記のように、単語部分の頻度をカウントするのは簡単です。私がやりたいのは、次のような出力を取得することです。これにより、各単語に関連付けられた個別の ID の数が得られます。
count word ids
0 2 kiwi 1
1 1 strawberry 1
2 3 lemon 2
3 3 apple 1
4 4 banana 3
理想的には、単語の頻度をカウントすると同時にしたい..しかし、どのように統合できるかわかりません。
どんなポインタでも大歓迎です!