You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清洗转换Pandas数据以统计词频并获取词分布?

实现方案

步骤1:导入依赖库

import pandas as pd
import ast
from collections import Counter

步骤2:转换数据类型,清洗空值

首先过滤掉列中的NaN值,再把字符串格式的列表转换为Python原生列表,可加异常兼容避免脏数据报错:

# 安全转换函数,脏数据默认返回空列表
def str_to_list(s):
    try:
        return ast.literal_eval(s)
    except:
        return []

# 可选:提前清洗多余换行符、空格
df['profile_values'] = df['profile_values'].str.replace('\n| ', '', regex=True)

# 过滤空值+转换格式
notna_mask = df['profile_values'].notna()
df['profile_list'] = df.loc[notna_mask, 'profile_values'].apply(str_to_list)

步骤3:统计词频

两种常用实现方式二选一即可:

方式1:用Counter统计(处理速度快,适合大数据量)
# 展开所有词到一个列表
all_words = []
for lst in df['profile_list'].dropna():
    all_words.extend(lst)

# 统计并转成目标格式的DataFrame
word_count = pd.DataFrame(Counter(all_words).items(), columns=['word', 'count'])
方式2:Pandas原生方法实现(代码更简洁)
word_count = df['profile_list'].dropna()\
            .explode()\
            .value_counts()\
            .reset_index(name='count')\
            .rename(columns={'index': 'word'})

运行完上述代码后,word_count就是你需要的词分布结果,可按需排序输出。


内容的提问来源于stack exchange,提问作者Mikael Björkqvist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:09:03