Как токенизировать 'Python Pandas' 'Series' из строк - PullRequest
0 голосов
/ 02 ноября 2018

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

.
text=df["Chat"]
words=text.split()
tokens=word_tokenize(text)
tokens=[i.lower() for i in words]
table=str.maketrans("","",string.punctuation)
stripped=[i.translate(table) for i in tokens]
words=[words for words in stripped if words.isalpha()]
stop_words = set(stopwords.words('english'))
words=[w for w in words if not w in stop_words]
print(words)

следующая ошибка msg shoes - "AttributeError: у объекта 'Series' нет атрибута 'split'.

но когда я использую iloc для нарезки, он работает нормально.

text=df["Chat"].iloc[0]
words=text.split()
tokens=word_tokenize(text)
tokens=[i.lower() for i in words]
table=str.maketrans("","",string.punctuation)
stripped=[i.translate(table) for i in tokens]
words=[words for words in stripped if words.isalpha()]
stop_words = set(stopwords.words('english'))
words=[w for w in words if not w in stop_words]
print(words)

все работает отлично, и я хочу получить вывод, то есть список токенов. я хочу конвертировать каждый элемент чата в токены.

1 Ответ

0 голосов
/ 02 ноября 2018

ваш фрейм данных называется df, это объект фрейма данных.

когда вы делаете df["Chat"], вы индексируетесь в объект Chat серии pandas.

Затем вы применяете функцию python .split(), но у ряда панд такого атрибута нет, поэтому вы получаете ошибку атрибута.

.split() в первую очередь для строк, я верю.

когда вы делаете df["Chat"].iloc[0], вы берете свой фрейм данных, индексируете в чат серии панд, затем индексируете в первое значение, а затем используете .split().

Вариант 1:

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

Вот документация для .apply() https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.apply.html

так что, похоже, у тебя получится df["Chat"].apply(split)

Вариант 2:

Pandas также позволяет вам использовать .str, который затем позволяет применять функции или другие вещи, которые могут иметь строки. так что вы можете попробовать df["Chat"].str.split()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...