Выбирать только столбцы [без строк] в записных книжках Python - PullRequest
0 голосов
/ 06 мая 2018

Я делаю некоторый анализ неструктурированных данных в записных книжках - что составляет столбец информации. Я хочу вытащить этот единственный столбец и выполнить обработку на естественном языке, чтобы узнать, какие ключевые слова наиболее часто встречаются, и токенизацию.

Когда я применяю свой токенайзер слова в столбце для отзывов пользователей, текст, который я хочу проанализировать:

text = df.loc[:, "User Reviews"]

Номера строк включены в столбец с текстом «Отзывы пользователей».

Поскольку некоторые из пользовательских обзоров содержат те же числа, что и номера строк, это становится непонятным для анализа, тем более что я применяю токенизацию и смотрю на частоту терминов. Таким образом, строка начинается с 1 в этом примере ниже, затем 2 является следующей строкой, а затем 3 и т. Д. Для отзывов пользователей 10K.

['1', 'great', 'cat', 'waiting', 'on', 'me', 'home', 'to', 'feed', 'love', 'fancy', 'feast',
 '2', 'my', '3', 'dogs', 'love', 'this', '3', 'So', 'bad', 'my', '4', 'dogs', 'threw', 'up', ...]

Есть ли способ сделать это? Нужно ли text.drop отбросить строку? Я посмотрел несколько источников, здесь:

https://www.shanelynn.ie/using-pandas-dataframe-creating-editing-viewing-data-in-python/

https://medium.com/dunder-data/selecting-subsets-of-data-in-pandas-6fcd0170be9c

Но все еще борюсь.

                                            User Reviews  
0  i think my puppy likes this. She seemed to keep...  
1  Its Great! My cat waiting on me to feed her. Fa...  
2  My 3 dogs love this so much. Wanted to get more...
3  All of my 4 dogs threw this up. Wouldnt ever re...  
4  I think she likes it. I gave it to her yesterda...  
5  Do not trust this brand, dog died 3 yrs ago aft...  
6  Tried and true dog food, never has issues with ...  

1 Ответ

0 голосов
/ 06 мая 2018

Номера строк включены в столбец с текстом «Отзывы пользователей».

A pd.Series объект включает в себя массив значений вместе со связанным индексом . Индекс, если на него не влияют конкретные операции, может совпадать с «номерами строк», но это не гарантируется.

Похоже, ваша логика токенизации предназначена для применения к массиву значений, а не к серии. Вы можете извлечь базовый массив numpy, который включает в себя только значения, используя pd.Series.values:

text = df.loc[:, "User Reviews"].values

Представление массива numpy теряет индекс и сохраняет только базовые данные.

...