Чтобы использовать CountVectorizer
так, как вы его использовали, ваш DataFrame должен выглядеть следующим образом:
string
0 kubernetes client bootstrapping ponda
1 micro insu
2 motor upi
3 secure app installation
4 health insu express credit customer
5 secure app installation
6 aap insta
7 loan house loan customers
На данный момент у вас это так:
stringList
0 [kubernetes, client, bootstrapping, ponda]
1 [micro, insu]
2 [motor, upi]
3 [secure, app, installation]
4 [health, insu, express, credit, customer]
5 [secure, app, installation]
6 [aap, insta]
7 [loan, house, loan, customers]
Итак, вот как вы преобразуете его так, как вам необходимо использовать CountVectorizer
Вот воспроизводимый пример:
df = pd.DataFrame([[['kubernetes', 'client', 'bootstrapping', 'ponda']], [['micro', 'insu']], [['motor', 'upi']],[['secure', 'app', 'installation']],[['health', 'insu', 'express', 'credit', 'customer']],[['secure', 'app', 'installation']],[['aap', 'insta']],[['loan', 'house', 'loan', 'customers']]])
df.columns = ['new']
Я называю ваш столбец со списком слов как new
, например, как он изначально находится в вашем DataFrame.
df['string'] = ""
Я создаю пустой столбец, в котором я объединю каждое слово в этом списке слов.
for i in df.index:
df.at[i, 'string'] = " ".join(item for item in df.at[i, 'new'])
Я сканировал по строкам, объединял каждый элемент в списке строк с " "
и добавлял его в столбец string
.
df.drop(['new'], axis = 1, inplace = True)
Теперь столбец со списком строк не нужен! так что я бросаю его.
ТЕПЕРЬ ваш DataFrame готов так, как вы этого хотите! Теперь вы можете использовать CountVectorizer
!
from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer()
counts = countvec.fit_transform(df['string'])
vocab = pd.DataFrame(counts.toarray())
vocab.columns = countvec.get_feature_names()
print(vocab)
Придает
aap app bootstrapping client credit customer customers express \
0 0 0 1 1 0 0 0 0
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
3 0 1 0 0 0 0 0 0
4 0 0 0 0 1 1 0 1
5 0 1 0 0 0 0 0 0
6 1 0 0 0 0 0 0 0
7 0 0 0 0 0 0 1 0
health house insta installation insu kubernetes loan micro motor \
0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 1 0 0 1 0
2 0 0 0 0 0 0 0 0 1
3 0 0 0 1 0 0 0 0 0
4 1 0 0 0 1 0 0 0 0
5 0 0 0 1 0 0 0 0 0
6 0 0 1 0 0 0 0 0 0
7 0 1 0 0 0 0 2 0 0
ponda secure upi
0 1 0 0
1 0 0 0
2 0 0 1
3 0 1 0
4 0 0 0
5 0 1 0
6 0 0 0
7 0 0 0