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

PySpark技术问询:不展开数组统计指定元素的出现次数

不使用explode统计数组列中指定元素的出现次数

输入数据

Nameaction
a[walk,run,sit,walk,run,sit]
b[walk,sit,run,walk,sleep,wait]

需求

无需使用explode展开数组列,统计action列中walk和run的出现次数,生成包含统计结果的DataFrame。

目标输出

Nameactionwalk_countrun_count
a[walk,run,sit,walk,run,sit]22
b[walk,sit,run,walk,sleep,wait]20

解决方案代码

import pandas as pd

# 构造输入DataFrame
df = pd.DataFrame({
    'Name': ['a', 'b'],
    'action': [
        ['walk','run','sit','walk','run','sit'],
        ['walk','sit','run','walk','sleep','wait']
    ]
})

# 直接对每个列表元素调用count方法统计次数
df['walk_count'] = df['action'].apply(lambda lst: lst.count('walk'))
df['run_count'] = df['action'].apply(lambda lst: lst.count('run'))

# 查看结果
print(df)

说明

通过apply方法遍历action列的每个列表,利用Python列表原生的count方法直接统计目标元素的出现次数,全程无需展开数组,高效完成统计需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:55:08