我正在尝试在 DataFrame 中创建一个新列,其中包含相应行的字数。我正在寻找单词总数,而不是每个不同单词的频率。我以为会有一种简单/快速的方法来完成这项常见任务,但是在谷歌搜索并阅读了一些 SO 帖子( 1 、 2 、 3 、 4 )之后,我被卡住了。我已经尝试了链接的 SO 帖子中提出的解决方案,但返回了很多属性错误。
words = df['col'].split()
df['totalwords'] = len(words)
结果是
AttributeError: 'Series' object has no attribute 'split'
和
f = lambda x: len(x["col"].split()) -1
df['totalwords'] = df.apply(f, axis=1)
结果是
AttributeError: ("'list' object has no attribute 'split'", 'occurred at index 0')
原文由 LMGagne 发布,翻译遵循 CC BY-SA 4.0 许可协议
str.split
+str.len
str.len
适用于任何非数字列。str.count
如果您的单词是单个空格分隔的,您可以简单地计算空格加 1。
列表理解
这比你想象的要快!