Python无需使用循环统计字符串词频并生成指定DataFrame的实现方法
实现方案
直接使用Python第三方库pandas的内置矢量化接口即可完成,全程无需手动编写循环逻辑,参考代码如下:
import pandas as pd # 原始字符串 temp = 'a computer is a machine' # 拆分单词后统计频次,直接生成符合要求的DataFrame df = pd.Series(temp.split()).value_counts().reset_index() # 重命名列名匹配要求 df.columns = ['WORD', 'FREQUENCY'] # 输出结果 print(df)
代码逻辑说明
temp.split()默认按空白字符拆分原始字符串,得到所有单词组成的列表- 转换为pandas的
Series对象后调用value_counts()方法,底层自动完成所有单词的频次统计,返回结果的索引为唯一单词,对应值为出现次数 reset_index()将索引转换为普通数据列,最后修改列名即可得到要求的输出格式
如果不想依赖pandas的统计逻辑,也可以使用Python标准库collections中的Counter实现,代码如下:
import pandas as pd from collections import Counter temp = 'a computer is a machine' # 用Counter完成词频统计 count_res = Counter(temp.split()) # 直接转换为DataFrame df = pd.DataFrame(count_res.items(), columns=['WORD', 'FREQUENCY'])
两种方案最终输出的结果都和要求的格式完全一致。
内容的提问来源于stack exchange,提问作者Drrr Ready
相关产品推荐
相关产品推荐

