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

如何统计列表元素在Pandas DataFrame列中的出现次数?

统计列表元素在DataFrame指定列中的出现次数

需求说明

给定元素列表xlst,统计列表中每个元素在DataFrame的col C列中按行出现的次数(每行只要包含该元素一次及以上,就算1次,而非统计元素在整列中的总出现频次),最终生成仅包含有出现记录的元素的结果DataFrame。

解决方案

以下是基于pandas的实现代码:

1. 构造示例数据

import pandas as pd

xlst = ['pak', 'vector', 'word', 'po']

# 构造示例DataFrame
data = {
    'col A': ['pk-121', 'pk-112', 'pk-132', 'pk-321', 'pk-333'],
    'col B': ['abc', 'xyz', 'agh', 'jkl', 'yul'],
    'col C': ['pak is going great', 'word is word my friend', 'vector needs working', 'pak is winning', 'vector now']
}
df = pd.DataFrame(data)

2. 统计并生成结果

# 遍历列表元素,统计每个元素在col C中出现的行数
count_dict = {word: df['col C'].str.contains(word).sum() for word in xlst}

# 转换为DataFrame并过滤掉无出现记录的元素
result_df = pd.DataFrame.from_dict(count_dict, orient='index', columns=['count']).reset_index().rename(columns={'index': 'word'})
result_df = result_df[result_df['count'] > 0]

print(result_df)

输出结果

word  count
0      pak      2
1      word      1
2   vector      2

补充说明

如果需要统计元素在整列中的总出现频次(比如示例中word在第二行出现2次,统计结果为2),只需将str.contains替换为str.count即可:

count_dict = {word: df['col C'].str.count(word).sum() for word in xlst}

内容的提问来源于stack exchange,提问作者Jlow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:25:29