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

在Pandas/Python中拆分DataFrame列元素并统计频次

解决方案

假设你的DataFrame中Name列的点餐项目用顿号分隔(如果是其他分隔符,替换代码里的分隔符即可),以下是实现需求的具体代码:

导入依赖

import pandas as pd

示例数据(可替换为你的真实DataFrame)

data = {'Name': ['汉堡、薯条、可乐', '汉堡、鸡翅', '薯条、可乐、鸡翅']}
df = pd.DataFrame(data)

1. 获取排序后的唯一项目列表

# 拆分每个单元格的餐品,展开为单行条目
all_items = df['Name'].str.split('、', expand=True).stack()
# 去重后按字典序排序
unique_sorted_items = sorted(all_items.unique())
print(unique_sorted_items)

输出示例:

['汉堡', '鸡翅', '可乐', '薯条']

2. 统计每个餐品的频次(计数器累加)

方法一:简洁版(split+stack+value_counts)

item_counts = df['Name'].str.split('、', expand=True).stack().value_counts().sort_values(ascending=False)
print(item_counts)

输出示例:

汉堡    2
薯条    2
可乐    2
鸡翅    2
dtype: int64

方法二:分步版(更直观,适合理解过程)

# 将每个单元格的餐品转为列表
df['Items'] = df['Name'].str.split('、')
# 把列表展开为单行条目
expanded_df = df.explode('Items')
# 统计频次并按降序排序
item_counts = expanded_df['Items'].value_counts().sort_values(ascending=False)
print(item_counts)

注意:如果你的餐品分隔符是逗号、空格或其他符号,只需将代码中的'、'替换为对应的分隔符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 15:10:16