2017-09-26 71 views

回答

0

比方说,你有你已经使用

df = pandas.read_csv('dataset.csv') 

生成的数据帧DF你会然后通过执行以下操作字计数添加新列:

df['new_column'] = df.columnToCount.apply(lambda x: len(str(x).split(' '))) 

记住分裂的空间很重要,因为你正在分裂新词。在执行此操作之前,您可能需要删除标点符号或数字并将其缩小为小写。

df = df.apply(lambda x: x.astype(str).str.lower()) 
df = df.replace('\d+', '', regex = True) 
df = df.replace('[^\w\s\+]', '', regex = True) 
+0

为什么不使用NLTK字标记生成器? – Dark

+0

这是一个选项。 – muninn

0
from collections import Counter 

df['new_column'] = df['count_column'].apply(lambda x: Counter(" ".join(x).split(" ")).items()) 
+0

这需要您将'count_column'中的每个文本单元格分割成单词列表。 (如果'count_column'中的每个单元格都包含一个单独的字符串,则这会计算字符数。)另外,如果我错过了某些显而易见的内容,对不起,为什么'Counter(''.join(x).split(''))'? 'Counter(x)'没有达到相同的结果吗? **编辑:**加入然后拆分的一个原因是为了确保您分解列表中包含多个空格分隔的单词的任何字符串。 –

+0

@PeterLeimbigler如果按空格分割,你会如何计算字符? –

+0

在字符串上运行'''.join(a_string_variable)'会在字符串中的每个字符之间插入一个空格。 –

相关问题