Her bir konu için terim eşleşmeleri sayısını saymak istediğim, cümlenin yer aldığı bir terim sözlüğü ve başlıklar halinde gruplandırılmış terimler sözlüğüm var.Python panda sayısı bir dizgedeki Regex eşleşmeleri sayısını sayıyor
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']
})
Şimdiye kadar ben yarattık konular için sütunlar ve bir kelime sözlüğe üzerinde yineleme tarafından varsa 1 ile işaretlenmiş.
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)
ve ben alıyorum:
>>>
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
cümlede görünen her konu için kelimelerin sayısını en iyi yolu nedir? ve cython
kullanmadan sözlüğün üzerinde daha verimli bir yol var mı?
gerçekten her satır için şartlarınızı saymak gerekirse veya tüm veri çerçeve için onları sayacaktır do? Yani son hedef nedir? – MaxU