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

如何统计pandas DataFrame单元格内元素连续出现次数并生成新列

完整实现代码

首先确保已经导入依赖库:

import pandas as pd
from itertools import groupby
from collections import Counter

你已经完成了consecutive列的生成,后续处理步骤如下:

# 定义函数提取每个国家的最长连续访问次数,连续次数<=1的统一记为0
def calc_country_cnt(row):
    country_max = {}
    for item in row['consecutive']:
        for country, cnt in item.items():
            # 仅保留当前国家最长的连续次数
            if cnt > country_max.get(country, 0):
                country_max[country] = cnt
    # 连续次数<=1的替换为0
    return {k: v if v > 1 else 0 for k, v in country_max.items()}

# 生成每个用户的国家计数字典
df6['cnt_map'] = df6.apply(calc_country_cnt, axis=1)

# 将字典列展开为宽表,合并name列后调整列顺序得到最终结果
result = pd.concat(
    [df6['name'], pd.json_normalize(df6['cnt_map']).fillna(0).astype(int)],
    axis=1
)[['name', 'UK', 'US', 'CA', 'Mexico', 'AUS']]

执行后打印result即可得到你需要的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:54:03