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

如何统计DataFrame列中嵌套列表内各元素的出现次数?

解决DataFrame列表列元素统计问题

问题根源

你的代码出现统计单个字符的情况,大概率是因为df2['elements']列里的“列表”其实是字符串类型(而非真正的Python列表对象),导致循环时把字符串拆成单个字符遍历;另外原代码第一次遇到元素时初始值设为0,也会导致统计结果少1。

解决方案

步骤1:将字符串形式的列表转为真正的列表

如果df2['elements']的元素是字符串(比如"[Element B, Element Cr, Element Re]"),先用ast.literal_eval解析成列表:

import ast
df2['elements'] = df2['elements'].apply(ast.literal_eval)

验证类型:执行print(type(df2['elements'].iloc[0])),输出应为<class 'list'>。

步骤2:统计元素出现次数

方法一:用Pandas内置方法(推荐)

用explode将列表拆分为多行,再用value_counts()直接统计:

element_counts = df2['elements'].explode().value_counts()
print(element_counts)

示例输出会类似:

Element B    5
Element Cr   1
Element Re   1
...
方法二:修复你的字典循环

如果坚持用字典实现,修正初始值的错误(第一次出现设为1):

elements_count_dict = {}
for entry in df2['elements']:
    for elem in entry:
        if elem in elements_count_dict:
            elements_count_dict[elem] += 1
        else:
            elements_count_dict[elem] = 1
print(elements_count_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:57:43