Частота слов в столбце, где строки являются списками - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть столбец данных в файле .csv, который содержит списки слов и фраз, разделенных запятыми.

Он имеет такую ​​структуру:

Строка A ['сон', 'усталость', 'бессонные ночи', 'сон муси c']

ряд B ["истощение", "бессонные ночи", "усталый" ]

Ряд C ['musi c', 'бессонные ночи', 'sleep musi c', 'Моцарт']

Я есть пытаясь подсчитать частоту появления каждого отдельного слова или фразы в столбце, и это было относительно успешно при использовании следующего кода:

import pandas as pd

df = pd.read_csv('file_name.csv')

output = df['column_name'].str.split(',\s+', expand=True).stack().value_counts()

print(output)

Однако у меня есть проблема в том, что мой выводимый оператор вывода возвращает только пять наиболее часто встречающихся и пять наименее часто встречающихся слов / фраз. В меньшем масштабе, используя приведенный выше пример данных, это выглядит примерно так:

'бессонные ночи' 3

'sleep musi c' 2

..

'musi c' 1

'Моцарт' 1

Можно ли выполнить настройку, чтобы получить каждое слово / фразу напечатан с соответствующей частотой?

Спасибо!

1 Ответ

0 голосов
/ 04 февраля 2020

Pandas по умолчанию отображает только ограниченное количество строк. Причина этого заключается в том, чтобы не перегружать окно дисплея. Результаты все еще там в памяти. Чтобы получить полный результат, либо экспортируйте данные в файл Excel или CSV, используя output.to_excel("filename.xlsx") или output.to_csv("filename.csv"), либо измените параметры отображения на pandas, как предложено @ erfan.

...