将函数应用于列表的数据框列
Apply function to dataframe column of lists
我有一组文本字符串 (A)。我可以将它们分解为标记 (B)。我想删除一些标记,这样我最终只得到单词 (C)。我试过了:
from nltk.tokenize import word_tokenize
df = pd.DataFrame({'A': ["potato soup, 99", "2 tomato"]})
# Tokenise
df['B'] = df['A'] .apply(word_tokenize)
# Words only
def Words(Token):
if Token .isalpha():
return Token
df['C'] = df['B'] .apply(Words)
但是我得到一个错误:
AttributeError: 'list' object has no attribute 'isalpha'
我正在将函数应用于列表,但我想将其应用于列表中的内容。
使用列表理解:
df['C'] = df['B'].apply(lambda x: [y for y in x if y.isalpha()])
我有一组文本字符串 (A)。我可以将它们分解为标记 (B)。我想删除一些标记,这样我最终只得到单词 (C)。我试过了:
from nltk.tokenize import word_tokenize
df = pd.DataFrame({'A': ["potato soup, 99", "2 tomato"]})
# Tokenise
df['B'] = df['A'] .apply(word_tokenize)
# Words only
def Words(Token):
if Token .isalpha():
return Token
df['C'] = df['B'] .apply(Words)
但是我得到一个错误:
AttributeError: 'list' object has no attribute 'isalpha'
我正在将函数应用于列表,但我想将其应用于列表中的内容。
使用列表理解:
df['C'] = df['B'].apply(lambda x: [y for y in x if y.isalpha()])