有没有其他方法来实现这个解决方案?
当有许多关键字需要匹配时,使用str.contains()并不是很优雅。
df = DataFrame({'A':['Cat had a nap','Dog had puppies','Did you see a Donkey','kitten got angry','puppy was cute']})
dic = {'Cat':'Cat','kitten':'Cat','Dog':'Dog','puppy':'Dog'}
A
0 Cat had a nap
1 Dog had puppies
2 Did you see a Donkey
3 kitten got angry
4 puppy was cute
df['Cat'] = (df['A'].astype(str).str.contains('Cat')|df['A'].astype(str).str.contains('kitten')).replace({False:0, True:1})
df['Dog'] = (df['A'].astype(str).str.contains('Dog')|df['A'].astype(str).str.contains('puppy')).replace({False:0, True:1})
df
A Cat Dog
0 Cat had a nap 1 0
1 Dog had puppies 0 1
2 Did you see a Donkey 0 0
3 kitten got angry 1 0
4 puppy was cute 0 1
df ['A'] .apply(lambda x:'dog' in x)
- jezraeldf['A'].apply(lambda x: 'dog' in x.lower())
- Sharvari Gc