私は、文章と用語の辞書をトピックにグループ化したデータフレームを持っています。ここで、各トピックの用語一致の数を数えたいと思います。Python pandas count文字列内の正規表現の一致数
import pandas as pd
terms = {'animals':["fox","deer","eagle"],
'people':['John', 'Rob','Steve'],
'games':['basketball', 'football', 'hockey']
}
df=pd.DataFrame({
'Score': [4,6,2,7,8],
'Foo': ['The quick brown fox was playing basketball today','John and Rob visited the eagles nest, the foxes ran away','Bill smells like a wet dog','Steve threw the football at a deer. But the football missed','Sheriff John does not like hockey']
})
これまでのところ私は、トピックの列を作成し、単語は辞書を反復処理することによって存在している場合は1とそれをマークしています。
df = pd.concat([df, pd.DataFrame(columns=list(terms.keys()))])
for k, v in terms.items():
for val in v:
df.loc[df.Foo.str.contains(val), k] = 1
print (df)
と私が取得:
>>>
Foo Score animals games \
0 The quick brown fox was playing basketball today 4 1 1
1 John and Rob visited the eagles nest, the foxe... 6 1 NaN
2 Bill smells like a wet dog 2 NaN NaN
3 Steve threw the football at a deer. But the fo... 7 1 1
4 Sheriff John does not like hockey 8 NaN 1
people
0 NaN
1 1
2 NaN
3 1
4 1
文に表示される各トピックの単語数をカウントするための最良の方法は何ですか? cython
を使用せずに辞書をループするより効率的な方法がありますか?
あなたが本当に行ごとにあなたの条件をカウントする必要があるか、あなたは全体のデータフレームのためにそれらをカウントされますか?私。最終目標は何ですか? – MaxU